/* Generated by Cython 3.2.4 */

#ifndef PY_SSIZE_T_CLEAN
#define PY_SSIZE_T_CLEAN
#endif /* PY_SSIZE_T_CLEAN */
/* InitLimitedAPI */
#if defined(Py_LIMITED_API)
  #if !defined(CYTHON_LIMITED_API)
  #define CYTHON_LIMITED_API 1
  #endif
#elif defined(CYTHON_LIMITED_API)
  #ifdef _MSC_VER
  #pragma message ("Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.")
  #else
  #warning Limited API usage is enabled with 'CYTHON_LIMITED_API' but 'Py_LIMITED_API' does not define a Python target version. Consider setting 'Py_LIMITED_API' instead.
  #endif
#endif

#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x03080000
    #error Cython requires Python 3.8+.
#else
#define __PYX_ABI_VERSION "3_2_4"
#define CYTHON_HEX_VERSION 0x030204F0
#define CYTHON_FUTURE_DIVISION 1
/* CModulePreamble */
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
#if defined(GRAALVM_PYTHON)
  /* For very preliminary testing purposes. Most variables are set the same as PyPy.
     The existence of this section does not imply that anything works or is even tested */
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 1
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
  #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_ASSUME_SAFE_SIZE
  #define CYTHON_ASSUME_SAFE_SIZE 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_AM_SEND
  #define CYTHON_USE_AM_SEND 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 1
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
  #undef CYTHON_IMMORTAL_CONSTANTS
  #define CYTHON_IMMORTAL_CONSTANTS 0
#elif defined(PYPY_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 1
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
  #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #ifndef CYTHON_ASSUME_SAFE_SIZE
    #define CYTHON_ASSUME_SAFE_SIZE 1
  #endif
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #if PY_VERSION_HEX < 0x03090000
    #undef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE (PYPY_VERSION_NUM >= 0x07030C00)
  #endif
  #undef CYTHON_USE_AM_SEND
  #define CYTHON_USE_AM_SEND 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_NUM >= 0x07031100)
  #endif
  #undef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 0
  #undef CYTHON_IMMORTAL_CONSTANTS
  #define CYTHON_IMMORTAL_CONSTANTS 0
#elif defined(CYTHON_LIMITED_API)
  #ifdef Py_LIMITED_API
    #undef __PYX_LIMITED_VERSION_HEX
    #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
  #endif
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 1
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 1
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #endif
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
  #endif
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_ASSUME_SAFE_SIZE
  #define CYTHON_ASSUME_SAFE_SIZE 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #undef CYTHON_USE_SYS_MONITORING
  #define CYTHON_USE_SYS_MONITORING 0
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 0
  #endif
  #ifndef CYTHON_USE_AM_SEND
    #define CYTHON_USE_AM_SEND (__PYX_LIMITED_VERSION_HEX >= 0x030A0000)
  #endif
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
  #ifndef CYTHON_USE_FREELISTS
  #define CYTHON_USE_FREELISTS 1
  #endif
  #undef CYTHON_IMMORTAL_CONSTANTS
  #define CYTHON_IMMORTAL_CONSTANTS 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #ifdef Py_GIL_DISABLED
    #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 1
  #else
    #define CYTHON_COMPILING_IN_CPYTHON_FREETHREADING 0
  #endif
  #if PY_VERSION_HEX < 0x030A0000
    #undef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #elif !defined(CYTHON_USE_TYPE_SLOTS)
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #ifndef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #ifndef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 0
  #elif !defined(CYTHON_USE_PYLIST_INTERNALS)
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING || PY_VERSION_HEX >= 0x030B00A2
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 1
  #elif !defined(CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)
    #define CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_ASSUME_SAFE_SIZE
    #define CYTHON_ASSUME_SAFE_SIZE 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_FAST_GIL
    #define CYTHON_FAST_GIL 0
  #elif !defined(CYTHON_FAST_GIL)
    #define CYTHON_FAST_GIL (PY_VERSION_HEX < 0x030C00A6)
  #endif
  #ifndef CYTHON_METH_FASTCALL
    #define CYTHON_METH_FASTCALL 1
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #ifndef CYTHON_USE_SYS_MONITORING
    #define CYTHON_USE_SYS_MONITORING (PY_VERSION_HEX >= 0x030d00B1)
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 1
  #endif
  #ifndef CYTHON_USE_AM_SEND
    #define CYTHON_USE_AM_SEND 1
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    #undef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS 0
  #elif !defined(CYTHON_USE_DICT_VERSIONS)
    #define CYTHON_USE_DICT_VERSIONS  (PY_VERSION_HEX < 0x030C00A5 && !CYTHON_USE_MODULE_STATE)
  #endif
  #ifndef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK 1
  #endif
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
  #endif
  #ifndef CYTHON_USE_FREELISTS
    #define CYTHON_USE_FREELISTS (!CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
  #endif
  #if defined(CYTHON_IMMORTAL_CONSTANTS) && PY_VERSION_HEX < 0x030C0000
    #undef CYTHON_IMMORTAL_CONSTANTS
    #define CYTHON_IMMORTAL_CONSTANTS 0  // definitely won't work
  #elif !defined(CYTHON_IMMORTAL_CONSTANTS)
    #define CYTHON_IMMORTAL_CONSTANTS (PY_VERSION_HEX >= 0x030C0000 && !CYTHON_USE_MODULE_STATE && CYTHON_COMPILING_IN_CPYTHON_FREETHREADING)
  #endif
#endif
#ifndef CYTHON_COMPRESS_STRINGS
  #define CYTHON_COMPRESS_STRINGS 1
#endif
#ifndef CYTHON_FAST_PYCCALL
#define CYTHON_FAST_PYCCALL  CYTHON_FAST_PYCALL
#endif
#ifndef CYTHON_VECTORCALL
#if CYTHON_COMPILING_IN_LIMITED_API
#define CYTHON_VECTORCALL  (__PYX_LIMITED_VERSION_HEX >= 0x030C0000)
#else
#define CYTHON_VECTORCALL  (CYTHON_FAST_PYCCALL)
#endif
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(maybe_unused)
        #define CYTHON_UNUSED [[maybe_unused]]
      #endif
    #endif
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
  #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_USE_CPP_STD_MOVE
  #if defined(__cplusplus) && (\
    __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
    #define CYTHON_USE_CPP_STD_MOVE 1
  #else
    #define CYTHON_USE_CPP_STD_MOVE 0
  #endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#include <stdint.h>
typedef uintptr_t  __pyx_uintptr_t;
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(fallthrough)
        #define CYTHON_FALLTHROUGH [[fallthrough]]
      #endif
    #endif
    #ifndef CYTHON_FALLTHROUGH
      #if __has_cpp_attribute(clang::fallthrough)
        #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
      #elif __has_cpp_attribute(gnu::fallthrough)
        #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
      #endif
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif
#ifndef Py_UNREACHABLE
  #define Py_UNREACHABLE()  assert(0); abort()
#endif
#ifdef __cplusplus
  template <typename T>
  struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
  #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
#else
  #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
#endif
#if CYTHON_COMPILING_IN_PYPY == 1
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX < 0x030A0000)
#else
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX < 0x03090000)
#endif
#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))

/* CppInitCode */
#ifndef __cplusplus
  #error "Cython files generated with the C++ option must be compiled with a C++ compiler."
#endif
#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #else
    #define CYTHON_INLINE inline
  #endif
#endif
template<typename T>
void __Pyx_call_destructor(T& x) {
    x.~T();
}
template<typename T>
class __Pyx_FakeReference {
  public:
    __Pyx_FakeReference() : ptr(NULL) { }
    __Pyx_FakeReference(const T& ref) : ptr(const_cast<T*>(&ref)) { }
    T *operator->() { return ptr; }
    T *operator&() { return ptr; }
    operator T&() { return *ptr; }
    template<typename U> bool operator ==(const U& other) const { return *ptr == other; }
    template<typename U> bool operator !=(const U& other) const { return *ptr != other; }
    template<typename U> bool operator==(const __Pyx_FakeReference<U>& other) const { return *ptr == *other.ptr; }
    template<typename U> bool operator!=(const __Pyx_FakeReference<U>& other) const { return *ptr != *other.ptr; }
  private:
    T *ptr;
};

/* PythonCompatibility */
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
#define __Pyx_DefaultClassType PyType_Type
#if CYTHON_COMPILING_IN_LIMITED_API
    #ifndef CO_OPTIMIZED
    static int CO_OPTIMIZED;
    #endif
    #ifndef CO_NEWLOCALS
    static int CO_NEWLOCALS;
    #endif
    #ifndef CO_VARARGS
    static int CO_VARARGS;
    #endif
    #ifndef CO_VARKEYWORDS
    static int CO_VARKEYWORDS;
    #endif
    #ifndef CO_ASYNC_GENERATOR
    static int CO_ASYNC_GENERATOR;
    #endif
    #ifndef CO_GENERATOR
    static int CO_GENERATOR;
    #endif
    #ifndef CO_COROUTINE
    static int CO_COROUTINE;
    #endif
#else
    #ifndef CO_COROUTINE
      #define CO_COROUTINE 0x80
    #endif
    #ifndef CO_ASYNC_GENERATOR
      #define CO_ASYNC_GENERATOR 0x200
    #endif
#endif
static int __Pyx_init_co_variables(void);
#if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE)
  #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type)
#else
  #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
  #define __Pyx_Py_Is(x, y)  Py_Is(x, y)
#else
  #define __Pyx_Py_Is(x, y) ((x) == (y))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
  #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
#else
  #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
  #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
#else
  #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
  #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
#else
  #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
#endif
#define __Pyx_NoneAsNull(obj)  (__Pyx_Py_IsNone(obj) ? NULL : (obj))
#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
#else
  #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef Py_TPFLAGS_SEQUENCE
  #define Py_TPFLAGS_SEQUENCE 0
#endif
#ifndef Py_TPFLAGS_MAPPING
  #define Py_TPFLAGS_MAPPING 0
#endif
#ifndef Py_TPFLAGS_IMMUTABLETYPE
  #define Py_TPFLAGS_IMMUTABLETYPE (1UL << 8)
#endif
#ifndef Py_TPFLAGS_DISALLOW_INSTANTIATION
  #define Py_TPFLAGS_DISALLOW_INSTANTIATION (1UL << 7)
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#ifndef METH_FASTCALL
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #if PY_VERSION_HEX >= 0x030d00A4
  #  define __Pyx_PyCFunctionFast PyCFunctionFast
  #  define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords
  #else
  #  define __Pyx_PyCFunctionFast _PyCFunctionFast
  #  define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
  #endif
#endif
#if CYTHON_METH_FASTCALL
  #define __Pyx_METH_FASTCALL METH_FASTCALL
  #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
  #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
#else
  #define __Pyx_METH_FASTCALL METH_VARARGS
  #define __Pyx_PyCFunction_FastCall PyCFunction
  #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
#endif
#if CYTHON_VECTORCALL
  #define __pyx_vectorcallfunc vectorcallfunc
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  PY_VECTORCALL_ARGUMENTS_OFFSET
  #define __Pyx_PyVectorcall_NARGS(n)  PyVectorcall_NARGS((size_t)(n))
#else
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  0
  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(n))
#endif
#if PY_VERSION_HEX >= 0x030900B1
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_CheckExact(func)
#else
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_Check(func)
#endif
#define __Pyx_CyOrPyCFunction_Check(func)  PyCFunction_Check(func)
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  (((PyCFunctionObject*)(func))->m_ml->ml_meth)
#elif !CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  PyCFunction_GET_FUNCTION(func)
#endif
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FLAGS(func)  (((PyCFunctionObject*)(func))->m_ml->ml_flags)
static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
    return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
}
#endif
static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void (*cfunc)(void)) {
#if CYTHON_COMPILING_IN_LIMITED_API
    return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
#else
    return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
#endif
}
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCFunction(func, cfunc)
#if PY_VERSION_HEX < 0x03090000 || (CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000)
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  ((void)m, PyType_FromSpecWithBases(s, b))
  typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
#else
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  PyType_FromModuleAndSpec(m, s, b)
  #define __Pyx_PyCMethod  PyCMethod
#endif
#ifndef METH_METHOD
  #define METH_METHOD 0x200
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
#elif CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) GraalPyFrame_SetLineNumber((frame), (lineno))
#elif CYTHON_COMPILING_IN_GRAAL
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) _PyFrame_SetLineNumber((frame), (lineno))
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyThreadState_Current PyThreadState_Get()
#elif !CYTHON_FAST_THREAD_STATE
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x030d00A1
  #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#endif
#if CYTHON_USE_MODULE_STATE
static CYTHON_INLINE void *__Pyx__PyModule_GetState(PyObject *op)
{
    void *result;
    result = PyModule_GetState(op);
    if (!result)
        Py_FatalError("Couldn't find the module state");
    return result;
}
#define __Pyx_PyModule_GetState(o) (__pyx_mstatetype *)__Pyx__PyModule_GetState(o)
#else
#define __Pyx_PyModule_GetState(op) ((void)op,__pyx_mstate_global)
#endif
#define __Pyx_PyObject_GetSlot(obj, name, func_ctype)  __Pyx_PyType_GetSlot(Py_TYPE((PyObject *) obj), name, func_ctype)
#define __Pyx_PyObject_TryGetSlot(obj, name, func_ctype) __Pyx_PyType_TryGetSlot(Py_TYPE(obj), name, func_ctype)
#define __Pyx_PyObject_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
#define __Pyx_PyObject_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSubSlot(Py_TYPE(obj), sub, name, func_ctype)
#if CYTHON_USE_TYPE_SLOTS
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((type)->name)
  #define __Pyx_PyType_TryGetSlot(type, name, func_ctype) __Pyx_PyType_GetSlot(type, name, func_ctype)
  #define __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype) (((type)->sub) ? ((type)->sub->name) : NULL)
  #define __Pyx_PyType_TryGetSubSlot(type, sub, name, func_ctype) __Pyx_PyType_GetSubSlot(type, sub, name, func_ctype)
#else
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((func_ctype) PyType_GetSlot((type), Py_##name))
  #define __Pyx_PyType_TryGetSlot(type, name, func_ctype)\
    ((__PYX_LIMITED_VERSION_HEX >= 0x030A0000 ||\
     (PyType_GetFlags(type) & Py_TPFLAGS_HEAPTYPE) || __Pyx_get_runtime_version() >= 0x030A0000) ?\
     __Pyx_PyType_GetSlot(type, name, func_ctype) : NULL)
  #define __Pyx_PyType_GetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_GetSlot(obj, name, func_ctype)
  #define __Pyx_PyType_TryGetSubSlot(obj, sub, name, func_ctype) __Pyx_PyType_TryGetSlot(obj, name, func_ctype)
#endif
#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
#define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStrWithError(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
    PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
    if (res == NULL) PyErr_Clear();
    return res;
}
#elif !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000
#define __Pyx_PyDict_GetItemStrWithError  PyDict_GetItemWithError
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#else
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
#if CYTHON_COMPILING_IN_PYPY
    return PyDict_GetItem(dict, name);
#else
    PyDictEntry *ep;
    PyDictObject *mp = (PyDictObject*) dict;
    long hash = ((PyStringObject *) name)->ob_shash;
    assert(hash != -1);
    ep = (mp->ma_lookup)(mp, name, hash);
    if (ep == NULL) {
        return NULL;
    }
    return ep->me_value;
#endif
}
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#endif
#if CYTHON_USE_TYPE_SLOTS
  #define __Pyx_PyType_GetFlags(tp)   (((PyTypeObject *)tp)->tp_flags)
  #define __Pyx_PyType_HasFeature(type, feature)  ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
#else
  #define __Pyx_PyType_GetFlags(tp)   (PyType_GetFlags((PyTypeObject *)tp))
  #define __Pyx_PyType_HasFeature(type, feature)  PyType_HasFeature(type, feature)
#endif
#define __Pyx_PyObject_GetIterNextFunc(iterator)  __Pyx_PyObject_GetSlot(iterator, tp_iternext, iternextfunc)
#if CYTHON_USE_TYPE_SPECS
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  {\
    PyTypeObject *type = Py_TYPE((PyObject*)obj);\
    assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
    PyObject_GC_Del(obj);\
    Py_DECREF(type);\
}
#else
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  PyObject_GC_Del(obj)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((void)u, 1114111U)
  #define __Pyx_PyUnicode_KIND(u)         ((void)u, (0))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)u)
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GetLength(u))
#else
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_READY(op)       (0)
  #else
    #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                                0 : _PyUnicode_Ready((PyObject *)(op)))
  #endif
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         ((int)PyUnicode_KIND(u))
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #else
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
    #else
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
    #endif
  #endif
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #if !defined(PyUnicode_DecodeUnicodeEscape)
    #define PyUnicode_DecodeUnicodeEscape(s, size, errors)  PyUnicode_Decode(s, size, "unicode_escape", errors)
  #endif
  #if !defined(PyUnicode_Contains)
    #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
  #endif
  #if !defined(PyByteArray_Check)
    #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
  #endif
  #if !defined(PyObject_Format)
    #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
  #endif
#endif
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  #define __Pyx_PySequence_ListKeepNew(obj)\
    (likely(PyList_CheckExact(obj) && PyUnstable_Object_IsUniquelyReferenced(obj)) ? __Pyx_NewRef(obj) : PySequence_List(obj))
#elif CYTHON_COMPILING_IN_CPYTHON
  #define __Pyx_PySequence_ListKeepNew(obj)\
    (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
#else
  #define __Pyx_PySequence_ListKeepNew(obj)  PySequence_List(obj)
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        __Pyx_IS_TYPE(obj, &PySet_Type)
#endif
#if PY_VERSION_HEX >= 0x030900A4
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
#else
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
#endif
enum __Pyx_ReferenceSharing {
  __Pyx_ReferenceSharing_DefinitelyUnique, // We created it so we know it's unshared - no need to check
  __Pyx_ReferenceSharing_OwnStrongReference,
  __Pyx_ReferenceSharing_FunctionArgument,
  __Pyx_ReferenceSharing_SharedReference, // Never trust it to be unshared because it's a global or similar
};
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX >= 0x030E0000
#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing)\
    (sharing == __Pyx_ReferenceSharing_DefinitelyUnique ? 1 :\
      (sharing == __Pyx_ReferenceSharing_FunctionArgument ? PyUnstable_Object_IsUniqueReferencedTemporary(o) :\
      (sharing == __Pyx_ReferenceSharing_OwnStrongReference ? PyUnstable_Object_IsUniquelyReferenced(o) : 0)))
#elif (CYTHON_COMPILING_IN_CPYTHON && !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING) || CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)sharing), Py_REFCNT(o) == 1)
#else
#define __Pyx_IS_UNIQUELY_REFERENCED(o, sharing) (((void)o), ((void)sharing), 0)
#endif
#if CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
  #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
  #elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_PyList_GetItemRef(o, i) (likely((i) >= 0) ? PySequence_GetItem(o, i) : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
  #else
    #define __Pyx_PyList_GetItemRef(o, i) PySequence_ITEM(o, i)
  #endif
#elif CYTHON_COMPILING_IN_LIMITED_API || !CYTHON_ASSUME_SAFE_MACROS
  #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    #define __Pyx_PyList_GetItemRef(o, i) PyList_GetItemRef(o, i)
  #else
    #define __Pyx_PyList_GetItemRef(o, i) __Pyx_XNewRef(PyList_GetItem(o, i))
  #endif
#else
  #define __Pyx_PyList_GetItemRef(o, i) __Pyx_NewRef(PyList_GET_ITEM(o, i))
#endif
#if CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS && !CYTHON_COMPILING_IN_LIMITED_API && CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PyList_GetItemRefFast(o, i, unsafe_shared) (__Pyx_IS_UNIQUELY_REFERENCED(o, unsafe_shared) ?\
    __Pyx_NewRef(PyList_GET_ITEM(o, i)) : __Pyx_PyList_GetItemRef(o, i))
#else
  #define __Pyx_PyList_GetItemRefFast(o, i, unsafe_shared) __Pyx_PyList_GetItemRef(o, i)
#endif
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_PyDict_GetItemRef(dict, key, result) PyDict_GetItemRef(dict, key, result)
#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
  *result = PyObject_GetItem(dict, key);
  if (*result == NULL) {
    if (PyErr_ExceptionMatches(PyExc_KeyError)) {
      PyErr_Clear();
      return 0;
    }
    return -1;
  }
  return 1;
}
#else
static CYTHON_INLINE int __Pyx_PyDict_GetItemRef(PyObject *dict, PyObject *key, PyObject **result) {
  *result = PyDict_GetItemWithError(dict, key);
  if (*result == NULL) {
    return PyErr_Occurred() ? -1 : 0;
  }
  Py_INCREF(*result);
  return 1;
}
#endif
#if defined(CYTHON_DEBUG_VISIT_CONST) && CYTHON_DEBUG_VISIT_CONST
  #define __Pyx_VISIT_CONST(obj)  Py_VISIT(obj)
#else
  #define __Pyx_VISIT_CONST(obj)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GET_ITEM(o, i)
  #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyList_GET_ITEM(o, i) PyList_GET_ITEM(o, i)
#else
  #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
  #define __Pyx_PyTuple_GET_ITEM(o, i) PyTuple_GetItem(o, i)
  #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
  #define __Pyx_PyList_GET_ITEM(o, i) PyList_GetItem(o, i)
#endif
#if CYTHON_ASSUME_SAFE_SIZE
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
  #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GET_LENGTH(o)
#else
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
  #define __Pyx_PyUnicode_GET_LENGTH(o) PyUnicode_GetLength(o)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_InternFromString)
  #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
#endif
#define __Pyx_PyLong_FromHash_t PyLong_FromSsize_t
#define __Pyx_PyLong_AsHash_t   __Pyx_PyIndex_AsSsize_t
#if __PYX_LIMITED_VERSION_HEX >= 0x030A0000
    #define __Pyx_PySendResult PySendResult
#else
    typedef enum {
        PYGEN_RETURN = 0,
        PYGEN_ERROR = -1,
        PYGEN_NEXT = 1,
    } __Pyx_PySendResult;
#endif
#if CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030A00A3
  typedef __Pyx_PySendResult (*__Pyx_pyiter_sendfunc)(PyObject *iter, PyObject *value, PyObject **result);
#else
  #define __Pyx_pyiter_sendfunc sendfunc
#endif
#if !CYTHON_USE_AM_SEND
#define __PYX_HAS_PY_AM_SEND 0
#elif __PYX_LIMITED_VERSION_HEX >= 0x030A0000
#define __PYX_HAS_PY_AM_SEND 1
#else
#define __PYX_HAS_PY_AM_SEND 2  // our own backported implementation
#endif
#if __PYX_HAS_PY_AM_SEND < 2
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
#else
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
        __Pyx_pyiter_sendfunc am_send;
    } __Pyx_PyAsyncMethodsStruct;
    #define __Pyx_SlotTpAsAsync(s) ((PyAsyncMethods*)(s))
#endif
#if CYTHON_USE_AM_SEND && PY_VERSION_HEX < 0x030A00F0
    #define __Pyx_TPFLAGS_HAVE_AM_SEND (1UL << 21)
#else
    #define __Pyx_TPFLAGS_HAVE_AM_SEND (0)
#endif
#if PY_VERSION_HEX >= 0x03090000
#define __Pyx_PyInterpreterState_Get() PyInterpreterState_Get()
#else
#define __Pyx_PyInterpreterState_Get() PyThreadState_Get()->interp
#endif
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030A0000
#ifdef __cplusplus
extern "C"
#endif
PyAPI_FUNC(void *) PyMem_Calloc(size_t nelem, size_t elsize);
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_init_co_variable(PyObject *inspect, const char* name, int *write_to) {
    int value;
    PyObject *py_value = PyObject_GetAttrString(inspect, name);
    if (!py_value) return 0;
    value = (int) PyLong_AsLong(py_value);
    Py_DECREF(py_value);
    *write_to = value;
    return value != -1 || !PyErr_Occurred();
}
static int __Pyx_init_co_variables(void) {
    PyObject *inspect;
    int result;
    inspect = PyImport_ImportModule("inspect");
    result =
#if !defined(CO_OPTIMIZED)
        __Pyx_init_co_variable(inspect, "CO_OPTIMIZED", &CO_OPTIMIZED) &&
#endif
#if !defined(CO_NEWLOCALS)
        __Pyx_init_co_variable(inspect, "CO_NEWLOCALS", &CO_NEWLOCALS) &&
#endif
#if !defined(CO_VARARGS)
        __Pyx_init_co_variable(inspect, "CO_VARARGS", &CO_VARARGS) &&
#endif
#if !defined(CO_VARKEYWORDS)
        __Pyx_init_co_variable(inspect, "CO_VARKEYWORDS", &CO_VARKEYWORDS) &&
#endif
#if !defined(CO_ASYNC_GENERATOR)
        __Pyx_init_co_variable(inspect, "CO_ASYNC_GENERATOR", &CO_ASYNC_GENERATOR) &&
#endif
#if !defined(CO_GENERATOR)
        __Pyx_init_co_variable(inspect, "CO_GENERATOR", &CO_GENERATOR) &&
#endif
#if !defined(CO_COROUTINE)
        __Pyx_init_co_variable(inspect, "CO_COROUTINE", &CO_COROUTINE) &&
#endif
        1;
    Py_DECREF(inspect);
    return result ? 0 : -1;
}
#else
static int __Pyx_init_co_variables(void) {
    return 0;  // It's a limited API-only feature
}
#endif

/* MathInitCode */
#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
  #ifndef _USE_MATH_DEFINES
    #define _USE_MATH_DEFINES
  #endif
#endif
#include <math.h>
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif

#ifndef CYTHON_CLINE_IN_TRACEBACK_RUNTIME
#define CYTHON_CLINE_IN_TRACEBACK_RUNTIME 0
#endif
#ifndef CYTHON_CLINE_IN_TRACEBACK
#define CYTHON_CLINE_IN_TRACEBACK CYTHON_CLINE_IN_TRACEBACK_RUNTIME
#endif
#if CYTHON_CLINE_IN_TRACEBACK
#define __PYX_MARK_ERR_POS(f_index, lineno)  { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; __pyx_clineno = __LINE__; (void) __pyx_clineno; }
#else
#define __PYX_MARK_ERR_POS(f_index, lineno)  { __pyx_filename = __pyx_f[f_index]; (void) __pyx_filename; __pyx_lineno = lineno; (void) __pyx_lineno; (void) __pyx_clineno; }
#endif
#define __PYX_ERR(f_index, lineno, Ln_error) \
    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }

#ifdef CYTHON_EXTERN_C
    #undef __PYX_EXTERN_C
    #define __PYX_EXTERN_C CYTHON_EXTERN_C
#elif defined(__PYX_EXTERN_C)
    #ifdef _MSC_VER
    #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
    #else
    #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
    #endif
#else
    #define __PYX_EXTERN_C extern "C++"
#endif

#define __PYX_HAVE__pyarrow___compute
#define __PYX_HAVE_API__pyarrow___compute
/* Early includes */
#include <string.h>
#include <stdio.h>

    #if __PYX_LIMITED_VERSION_HEX < 0x030d0000
    static CYTHON_INLINE PyObject *
    __Pyx_CAPI_PyList_GetItemRef(PyObject *list, Py_ssize_t index)
    {
        PyObject *item = PyList_GetItem(list, index);
        Py_XINCREF(item);
        return item;
    }
    #else
    #define __Pyx_CAPI_PyList_GetItemRef PyList_GetItemRef
    #endif

    #if CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX < 0x030d0000
    static CYTHON_INLINE int
    __Pyx_CAPI_PyList_Extend(PyObject *list, PyObject *iterable)
    {
        return PyList_SetSlice(list, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, iterable);
    }

    static CYTHON_INLINE int
    __Pyx_CAPI_PyList_Clear(PyObject *list)
    {
        return PyList_SetSlice(list, 0, PY_SSIZE_T_MAX, NULL);
    }
    #else
    #define __Pyx_CAPI_PyList_Extend PyList_Extend
    #define __Pyx_CAPI_PyList_Clear PyList_Clear
    #endif
    

    #if PY_MAJOR_VERSION >= 3
      #define __Pyx_PyFloat_FromString(obj)  PyFloat_FromString(obj)
    #else
      #define __Pyx_PyFloat_FromString(obj)  PyFloat_FromString(obj, NULL)
    #endif
    
#include <stddef.h>

    #if PY_MAJOR_VERSION <= 2
    #define PyDict_GetItemWithError _PyDict_GetItemWithError
    #endif

    #if __PYX_LIMITED_VERSION_HEX < 0x030d0000
    static CYTHON_INLINE int
    __Pyx_CAPI_PyDict_GetItemStringRef(PyObject *mp, const char *key, PyObject **result)
    {
        int res;
        PyObject *key_obj = PyUnicode_FromString(key);
        if (key_obj == NULL) {
            *result = NULL;
            return -1;
        }
        res = __Pyx_PyDict_GetItemRef(mp, key_obj, result);
        Py_DECREF(key_obj);
        return res;
    }
    #else
    #define __Pyx_CAPI_PyDict_GetItemStringRef PyDict_GetItemStringRef
    #endif
    #if PY_VERSION_HEX < 0x030d0000 || (CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030F0000)
    static CYTHON_INLINE int
    __Pyx_CAPI_PyDict_SetDefaultRef(PyObject *d, PyObject *key, PyObject *default_value,
                        PyObject **result)
    {
        PyObject *value;
        if (__Pyx_PyDict_GetItemRef(d, key, &value) < 0) {
            // get error
            if (result) {
                *result = NULL;
            }
            return -1;
        }
        if (value != NULL) {
            // present
            if (result) {
                *result = value;
            }
            else {
                Py_DECREF(value);
            }
            return 1;
        }

        // missing: set the item
        if (PyDict_SetItem(d, key, default_value) < 0) {
            // set error
            if (result) {
                *result = NULL;
            }
            return -1;
        }
        if (result) {
            Py_INCREF(default_value);
            *result = default_value;
        }
        return 0;
    }
    #else
    #define __Pyx_CAPI_PyDict_SetDefaultRef PyDict_SetDefaultRef
    #endif
    

    #if PY_VERSION_HEX < 0x030d0000
    static CYTHON_INLINE int __Pyx_PyWeakref_GetRef(PyObject *ref, PyObject **pobj)
    {
        PyObject *obj = PyWeakref_GetObject(ref);
        if (obj == NULL) {
            // SystemError if ref is NULL
            *pobj = NULL;
            return -1;
        }
        if (obj == Py_None) {
            *pobj = NULL;
            return 0;
        }
        Py_INCREF(obj);
        *pobj = obj;
        return 1;
    }
    #else
    #define __Pyx_PyWeakref_GetRef PyWeakref_GetRef
    #endif
    
#include "pythread.h"

    #if (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030600) && !defined(PyContextVar_Get)
    #define PyContextVar_Get(var, d, v)         ((d) ?             ((void)(var), Py_INCREF(d), (v)[0] = (d), 0) :             ((v)[0] = NULL, 0)         )
    #endif
    
#include "ios"
#include "new"
#include "stdexcept"
#include "typeinfo"
#include <memory>
#include <utility>

    #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600)
    // move should be defined for these versions of MSVC, but __cplusplus isn't set usefully
    #include <type_traits>

    namespace cython_std {
    template <typename T> typename std::remove_reference<T>::type&& move(T& t) noexcept { return std::move(t); }
    template <typename T> typename std::remove_reference<T>::type&& move(T&& t) noexcept { return std::move(t); }
    }

    #endif
    
#include <stdint.h>
#include <functional>
#include <optional>
#include <string_view>
#include <string>
#include <vector>
#include <unordered_map>
#include <unordered_set>

    #if CYTHON_COMPILING_IN_LIMITED_API
    #ifdef _MSC_VER
    #pragma message ("This module uses CPython specific internals of 'datetime.datetime', which are not available in the limited API.")
    #else
    #warning This module uses CPython specific internals of 'datetime.datetime', which are not available in the limited API.
    #endif
    #endif
    
#include "datetime.h"

    #define __Pyx_DateTime_DateTimeWithFold(year, month, day, hour, minute, second, microsecond, tz, fold)         PyDateTimeAPI->DateTime_FromDateAndTimeAndFold(year, month, day, hour, minute, second,             microsecond, tz, fold, PyDateTimeAPI->DateTimeType)
    #define __Pyx_DateTime_TimeWithFold(hour, minute, second, microsecond, tz, fold)         PyDateTimeAPI->Time_FromTimeAndFold(hour, minute, second, microsecond, tz, fold, PyDateTimeAPI->TimeType)

    #define __Pyx_TimeZone_UTC PyDateTime_TimeZone_UTC
    #define __Pyx_TimeZone_FromOffsetAndName(offset, name) PyTimeZone_FromOffsetAndName(offset, name)

    /* Backport for Python < 3.10 */
    #if PY_VERSION_HEX < 0x030a00a1
        #ifndef PyDateTime_TIME_GET_TZINFO
            #define PyDateTime_TIME_GET_TZINFO(o)                 ((((PyDateTime_Time*)o)->hastzinfo) ? ((PyDateTime_Time*)o)->tzinfo : Py_None)
        #endif
        #ifndef PyDateTime_DATE_GET_TZINFO
            #define PyDateTime_DATE_GET_TZINFO(o)                 ((((PyDateTime_DateTime*)o)->hastzinfo) ? ((PyDateTime_DateTime*)o)->tzinfo : Py_None)
        #endif
    #endif
    

    #include <memory>
    #include <string>
    #include <string_view>
    #include <utility>

    namespace arrow {
    namespace py {

    template <typename T>
    std::shared_ptr<T> to_shared(std::unique_ptr<T>& t) {
        return std::move(t);
    }
    template <typename T>
    std::shared_ptr<T> to_shared(std::unique_ptr<T>&& t) {
        return std::move(t);
    }

    // Needed until https://github.com/cython/cython/issues/6651 is fixed
    inline std::string to_string(std::string_view s) {
        return std::string(s);
    }

    }  // namespace py
    }  // namespace arrow
    
#include "arrow/python/platform.h"
#include <Python.h>
#include "arrow/api.h"
#include "arrow/result.h"
#include "arrow/util/future.h"
#include "arrow/python/async.h"
#include "arrow/python/common.h"
#include "arrow/util/key_value_metadata.h"
#include "arrow/util/decimal.h"
#include "arrow/config.h"
#include <variant>
#include "arrow/c/dlpack_abi.h"
#include "arrow/c/dlpack.h"
#include "arrow/builder.h"
#include "arrow/util/cancel.h"
#include "arrow/io/api.h"
#include "arrow/ipc/api.h"
#include "arrow/util/value_parsing.h"
#include "arrow/csv/api.h"
#include "arrow/json/options.h"
#include "arrow/json/reader.h"
#include "arrow/util/thread_pool.h"
#include "arrow/compute/api.h"

    #include "arrow/compute/function.h"
    namespace arrow {
    namespace compute {
    namespace internal {
    Result<std::unique_ptr<FunctionOptions>> DeserializeFunctionOptions(
        const Buffer& buffer);
    } //  namespace internal
    } //  namespace compute
    } //  namespace arrow
    

    #include <unordered_map>

    #include "arrow/type.h"
    #include "arrow/datum.h"

    namespace arrow {
    namespace compute {
    struct KnownFieldValues {
      std::unordered_map<FieldRef, Datum, FieldRef::Hash> map;
    };
    } //  namespace compute
    } //  namespace arrow
    
#include "arrow/compute/expression.h"
#include "arrow/extension_type.h"
#include "arrow/extension/json.h"
#include "arrow/extension/uuid.h"
#include "arrow/extension/fixed_shape_tensor.h"
#include "arrow/extension/opaque.h"
#include "arrow/extension/bool8.h"
#include "arrow/util/compression.h"
#include "arrow/util/io_util.h"
#include "arrow/util/iterator.h"
#include "arrow/util/secure_string.h"
#include "arrow/array/concatenate.h"
#include "arrow/c/abi.h"
#include "arrow/c/bridge.h"
#include "arrow/util/byte_size.h"
#include "arrow/python/udf.h"
#include "arrow/compute/cast.h"
#include "arrow/python/csv.h"
#include "arrow/python/api.h"
#include "arrow/python/arrow_to_pandas.h"
#include "arrow/python/numpy_init.h"
#include "arrow/python/pyarrow.h"
#include "arrow/python/inference.h"
#include "arrow/python/ipc.h"
#include "arrow/python/extension_type.h"
#include "arrow/python/benchmark.h"
#include "arrow/python/gdb.h"
#include "arrow/python/helpers.h"
#include "arrow/python/config.h"
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

#ifdef CYTHON_FREETHREADING_COMPATIBLE
#if CYTHON_FREETHREADING_COMPATIBLE
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USED
#else
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
#endif
#else
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USED
#endif
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
    #define __Pyx_PyByteArray_AsString(s) PyByteArray_AS_STRING(s)
#else
    #define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AsString(s))
    #define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AsString(s))
    #define __Pyx_PyByteArray_AsString(s) PyByteArray_AsString(s)
#endif
#define __Pyx_PyObject_AsWritableString(s)    ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
#define __Pyx_PyUnicode_FromOrdinal(o)       PyUnicode_FromOrdinal((int)o)
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
static CYTHON_INLINE PyObject *__Pyx_NewRef(PyObject *obj) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_NewRef)
    return Py_NewRef(obj);
#else
    Py_INCREF(obj);
    return obj;
#endif
}
static CYTHON_INLINE PyObject *__Pyx_XNewRef(PyObject *obj) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030a0000 || defined(Py_XNewRef)
    return Py_XNewRef(obj);
#else
    Py_XINCREF(obj);
    return obj;
#endif
}
static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b);
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t);
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
#if CYTHON_ASSUME_SAFE_MACROS
#define __Pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AS_DOUBLE(x)
#else
#define __Pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#define __Pyx_PyFloat_AS_DOUBLE(x) PyFloat_AsDouble(x)
#endif
#define __Pyx_PyFloat_AsFloat(x) ((float) __Pyx_PyFloat_AsDouble(x))
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_VERSION_HEX >= 0x030C00A7
  #ifndef _PyLong_SIGN_MASK
    #define _PyLong_SIGN_MASK 3
  #endif
  #ifndef _PyLong_NON_SIZE_BITS
    #define _PyLong_NON_SIZE_BITS 3
  #endif
  #define __Pyx_PyLong_Sign(x)  (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK)
  #define __Pyx_PyLong_IsNeg(x)  ((__Pyx_PyLong_Sign(x) & 2) != 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (!__Pyx_PyLong_IsNeg(x))
  #define __Pyx_PyLong_IsZero(x)  (__Pyx_PyLong_Sign(x) & 1)
  #define __Pyx_PyLong_IsPos(x)  (__Pyx_PyLong_Sign(x) == 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  (__Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
  #define __Pyx_PyLong_SignedDigitCount(x)\
        ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
  #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
    #define __Pyx_PyLong_IsCompact(x)     PyUnstable_Long_IsCompact((PyLongObject*) x)
    #define __Pyx_PyLong_CompactValue(x)  PyUnstable_Long_CompactValue((PyLongObject*) x)
  #else
    #define __Pyx_PyLong_IsCompact(x)     (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
    #define __Pyx_PyLong_CompactValue(x)  ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
  #endif
  typedef Py_ssize_t  __Pyx_compact_pylong;
  typedef size_t  __Pyx_compact_upylong;
  #else
  #define __Pyx_PyLong_IsNeg(x)  (Py_SIZE(x) < 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (Py_SIZE(x) >= 0)
  #define __Pyx_PyLong_IsZero(x)  (Py_SIZE(x) == 0)
  #define __Pyx_PyLong_IsPos(x)  (Py_SIZE(x) > 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  __Pyx_sst_abs(Py_SIZE(x))
  #define __Pyx_PyLong_SignedDigitCount(x)  Py_SIZE(x)
  #define __Pyx_PyLong_IsCompact(x)  (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
  #define __Pyx_PyLong_CompactValue(x)\
        ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
  typedef sdigit  __Pyx_compact_pylong;
  typedef digit  __Pyx_compact_upylong;
  #endif
  #if PY_VERSION_HEX >= 0x030C00A5
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->long_value.ob_digit)
  #else
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->ob_digit)
  #endif
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#elif __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeASCII(c_str, size, NULL)
#else
  #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
/* PretendToInitialize */
#ifdef __cplusplus
#if __cplusplus > 201103L
#include <type_traits>
#endif
template <typename T>
static void __Pyx_pretend_to_initialize(T* ptr) {
#if __cplusplus > 201103L
    if ((std::is_trivially_default_constructible<T>::value))
#endif
        *ptr = T();
    (void)ptr;
}
#else
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
#endif


#if !CYTHON_USE_MODULE_STATE
static PyObject *__pyx_m = NULL;
#endif
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * const __pyx_cfilenm = __FILE__;
static const char *__pyx_filename;

/* #### Code section: filename_table ### */

static const char* const __pyx_f[] = {
  "pyarrow/_compute.pyx",
  "string.to_py",
  "cpython/contextvars.pxd",
  "cpython/datetime.pxd",
  "cpython/type.pxd",
  "cpython/bool.pxd",
  "cpython/complex.pxd",
  "pyarrow/lib.pxd",
};
/* #### Code section: utility_code_proto_before_types ### */
/* Atomics.proto (used by UnpackUnboundCMethod) */
#include <pythread.h>
#ifndef CYTHON_ATOMICS
    #define CYTHON_ATOMICS 1
#endif
#define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS
#define __PYX_GET_CYTHON_COMPILING_IN_CPYTHON_FREETHREADING() CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __pyx_atomic_int_type int
#define __pyx_nonatomic_int_type int
#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
                        (__STDC_VERSION__ >= 201112L) &&\
                        !defined(__STDC_NO_ATOMICS__))
    #include <stdatomic.h>
#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
                    (__cplusplus >= 201103L) ||\
                    (defined(_MSC_VER) && _MSC_VER >= 1700)))
    #include <atomic>
#endif
#if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
                        (__STDC_VERSION__ >= 201112L) &&\
                        !defined(__STDC_NO_ATOMICS__) &&\
                       ATOMIC_INT_LOCK_FREE == 2)
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type atomic_int
    #define __pyx_atomic_ptr_type atomic_uintptr_t
    #define __pyx_nonatomic_ptr_type uintptr_t
    #define __pyx_atomic_incr_relaxed(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed)
    #define __pyx_atomic_incr_acq_rel(value) atomic_fetch_add_explicit(value, 1, memory_order_acq_rel)
    #define __pyx_atomic_decr_acq_rel(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel)
    #define __pyx_atomic_sub(value, arg) atomic_fetch_sub(value, arg)
    #define __pyx_atomic_int_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
    #define __pyx_atomic_load(value) atomic_load(value)
    #define __pyx_atomic_store(value, new_value) atomic_store(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) atomic_load_explicit(value, memory_order_relaxed)
    #define __pyx_atomic_pointer_load_acquire(value) atomic_load_explicit(value, memory_order_acquire)
    #define __pyx_atomic_pointer_exchange(value, new_value) atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
    #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) atomic_compare_exchange_strong(value, expected, desired)
    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
        #pragma message ("Using standard C atomics")
    #elif defined(__PYX_DEBUG_ATOMICS)
        #warning "Using standard C atomics"
    #endif
#elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
                    (__cplusplus >= 201103L) ||\
\
                    (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\
                    ATOMIC_INT_LOCK_FREE == 2)
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type std::atomic_int
    #define __pyx_atomic_ptr_type std::atomic_uintptr_t
    #define __pyx_nonatomic_ptr_type uintptr_t
    #define __pyx_atomic_incr_relaxed(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed)
    #define __pyx_atomic_incr_acq_rel(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_acq_rel)
    #define __pyx_atomic_decr_acq_rel(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel)
    #define __pyx_atomic_sub(value, arg) std::atomic_fetch_sub(value, arg)
    #define __pyx_atomic_int_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
    #define __pyx_atomic_load(value) std::atomic_load(value)
    #define __pyx_atomic_store(value, new_value) std::atomic_store(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) std::atomic_load_explicit(value, std::memory_order_relaxed)
    #define __pyx_atomic_pointer_load_acquire(value) std::atomic_load_explicit(value, std::memory_order_acquire)
    #define __pyx_atomic_pointer_exchange(value, new_value) std::atomic_exchange(value, (__pyx_nonatomic_ptr_type)new_value)
    #define __pyx_atomic_pointer_cmp_exchange(value, expected, desired) std::atomic_compare_exchange_strong(value, expected, desired)
    #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
        #pragma message ("Using standard C++ atomics")
    #elif defined(__PYX_DEBUG_ATOMICS)
        #warning "Using standard C++ atomics"
    #endif
#elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\
                    (__GNUC_MINOR__ > 1 ||\
                    (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2))))
    #define __pyx_atomic_ptr_type void*
    #define __pyx_nonatomic_ptr_type void*
    #define __pyx_atomic_incr_relaxed(value) __sync_fetch_and_add(value, 1)
    #define __pyx_atomic_incr_acq_rel(value) __sync_fetch_and_add(value, 1)
    #define __pyx_atomic_decr_acq_rel(value) __sync_fetch_and_sub(value, 1)
    #define __pyx_atomic_sub(value, arg) __sync_fetch_and_sub(value, arg)
    static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
        __pyx_nonatomic_int_type old = __sync_val_compare_and_swap(value, *expected, desired);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #define __pyx_atomic_load(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_store(value, new_value) __sync_lock_test_and_set(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_pointer_load_acquire(value) __sync_fetch_and_add(value, 0)
    #define __pyx_atomic_pointer_exchange(value, new_value) __sync_lock_test_and_set(value, (__pyx_atomic_ptr_type)new_value)
    static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
        __pyx_nonatomic_ptr_type old = __sync_val_compare_and_swap(value, *expected, desired);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #ifdef __PYX_DEBUG_ATOMICS
        #warning "Using GNU atomics"
    #endif
#elif CYTHON_ATOMICS && defined(_MSC_VER)
    #include <intrin.h>
    #undef __pyx_atomic_int_type
    #define __pyx_atomic_int_type long
    #define __pyx_atomic_ptr_type void*
    #undef __pyx_nonatomic_int_type
    #define __pyx_nonatomic_int_type long
    #define __pyx_nonatomic_ptr_type void*
    #pragma intrinsic (_InterlockedExchangeAdd, _InterlockedExchange, _InterlockedCompareExchange, _InterlockedCompareExchangePointer, _InterlockedExchangePointer)
    #define __pyx_atomic_incr_relaxed(value) _InterlockedExchangeAdd(value, 1)
    #define __pyx_atomic_incr_acq_rel(value) _InterlockedExchangeAdd(value, 1)
    #define __pyx_atomic_decr_acq_rel(value) _InterlockedExchangeAdd(value, -1)
    #define __pyx_atomic_sub(value, arg) _InterlockedExchangeAdd(value, -arg)
    static CYTHON_INLINE int __pyx_atomic_int_cmp_exchange(__pyx_atomic_int_type* value, __pyx_nonatomic_int_type* expected, __pyx_nonatomic_int_type desired) {
        __pyx_nonatomic_int_type old = _InterlockedCompareExchange(value, desired, *expected);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #define __pyx_atomic_load(value) _InterlockedExchangeAdd(value, 0)
    #define __pyx_atomic_store(value, new_value) _InterlockedExchange(value, new_value)
    #define __pyx_atomic_pointer_load_relaxed(value) *(void * volatile *)value
    #define __pyx_atomic_pointer_load_acquire(value) _InterlockedCompareExchangePointer(value, 0, 0)
    #define __pyx_atomic_pointer_exchange(value, new_value) _InterlockedExchangePointer(value, (__pyx_atomic_ptr_type)new_value)
    static CYTHON_INLINE int __pyx_atomic_pointer_cmp_exchange(__pyx_atomic_ptr_type* value, __pyx_nonatomic_ptr_type* expected, __pyx_nonatomic_ptr_type desired) {
        __pyx_atomic_ptr_type old = _InterlockedCompareExchangePointer(value, desired, *expected);
        int result = old == *expected;
        *expected = old;
        return result;
    }
    #ifdef __PYX_DEBUG_ATOMICS
        #pragma message ("Using MSVC atomics")
    #endif
#else
    #undef CYTHON_ATOMICS
    #define CYTHON_ATOMICS 0
    #ifdef __PYX_DEBUG_ATOMICS
        #warning "Not using atomics"
    #endif
#endif

/* CriticalSectionsDefinition.proto (used by CriticalSections) */
#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __Pyx_PyCriticalSection void*
#define __Pyx_PyCriticalSection2 void*
#define __Pyx_PyCriticalSection_End(cs)
#define __Pyx_PyCriticalSection2_End(cs)
#else
#define __Pyx_PyCriticalSection PyCriticalSection
#define __Pyx_PyCriticalSection2 PyCriticalSection2
#define __Pyx_PyCriticalSection_End PyCriticalSection_End
#define __Pyx_PyCriticalSection2_End PyCriticalSection2_End
#endif

/* CriticalSections.proto (used by ParseKeywordsImpl) */
#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __Pyx_PyCriticalSection_Begin(cs, arg) (void)(cs)
#define __Pyx_PyCriticalSection2_Begin(cs, arg1, arg2) (void)(cs)
#else
#define __Pyx_PyCriticalSection_Begin PyCriticalSection_Begin
#define __Pyx_PyCriticalSection2_Begin PyCriticalSection2_Begin
#endif
#if PY_VERSION_HEX < 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_BEGIN_CRITICAL_SECTION(o) {
#define __Pyx_END_CRITICAL_SECTION() }
#else
#define __Pyx_BEGIN_CRITICAL_SECTION Py_BEGIN_CRITICAL_SECTION
#define __Pyx_END_CRITICAL_SECTION Py_END_CRITICAL_SECTION
#endif

/* NoFastGil.proto */
#define __Pyx_PyGILState_Ensure PyGILState_Ensure
#define __Pyx_PyGILState_Release PyGILState_Release
#define __Pyx_FastGIL_Remember()
#define __Pyx_FastGIL_Forget()
#define __Pyx_FastGilFuncInit()

/* ForceInitThreads.proto */
#ifndef __PYX_FORCE_INIT_THREADS
  #define __PYX_FORCE_INIT_THREADS 0
#endif

/* IncludeStructmemberH.proto (used by FixUpExtensionType) */
#include <structmember.h>

/* #### Code section: numeric_typedefs ### */
/* #### Code section: complex_type_declarations ### */
/* #### Code section: type_declarations ### */

/*--- Type declarations ---*/
struct __pyx_obj_7pyarrow_3lib__Weakrefable;
struct __pyx_obj_7pyarrow_3lib_IpcWriteOptions;
struct __pyx_obj_7pyarrow_3lib_IpcReadOptions;
struct __pyx_obj_7pyarrow_3lib_Message;
struct __pyx_obj_7pyarrow_3lib_MemoryPool;
struct __pyx_obj_7pyarrow_3lib_DataType;
struct __pyx_obj_7pyarrow_3lib_ListType;
struct __pyx_obj_7pyarrow_3lib_LargeListType;
struct __pyx_obj_7pyarrow_3lib_ListViewType;
struct __pyx_obj_7pyarrow_3lib_LargeListViewType;
struct __pyx_obj_7pyarrow_3lib_MapType;
struct __pyx_obj_7pyarrow_3lib_FixedSizeListType;
struct __pyx_obj_7pyarrow_3lib_StructType;
struct __pyx_obj_7pyarrow_3lib_DictionaryMemo;
struct __pyx_obj_7pyarrow_3lib_DictionaryType;
struct __pyx_obj_7pyarrow_3lib_TimestampType;
struct __pyx_obj_7pyarrow_3lib_Time32Type;
struct __pyx_obj_7pyarrow_3lib_Time64Type;
struct __pyx_obj_7pyarrow_3lib_DurationType;
struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType;
struct __pyx_obj_7pyarrow_3lib_Decimal32Type;
struct __pyx_obj_7pyarrow_3lib_Decimal64Type;
struct __pyx_obj_7pyarrow_3lib_Decimal128Type;
struct __pyx_obj_7pyarrow_3lib_Decimal256Type;
struct __pyx_obj_7pyarrow_3lib_RunEndEncodedType;
struct __pyx_obj_7pyarrow_3lib_BaseExtensionType;
struct __pyx_obj_7pyarrow_3lib_ExtensionType;
struct __pyx_obj_7pyarrow_3lib_FixedShapeTensorType;
struct __pyx_obj_7pyarrow_3lib_Bool8Type;
struct __pyx_obj_7pyarrow_3lib_OpaqueType;
struct __pyx_obj_7pyarrow_3lib_UuidType;
struct __pyx_obj_7pyarrow_3lib_JsonType;
struct __pyx_obj_7pyarrow_3lib__Metadata;
struct __pyx_obj_7pyarrow_3lib_KeyValueMetadata;
struct __pyx_obj_7pyarrow_3lib_Field;
struct __pyx_obj_7pyarrow_3lib_Schema;
struct __pyx_obj_7pyarrow_3lib_Scalar;
struct __pyx_obj_7pyarrow_3lib_ArrayStatistics;
struct __pyx_obj_7pyarrow_3lib__PandasConvertible;
struct __pyx_obj_7pyarrow_3lib_Array;
struct __pyx_obj_7pyarrow_3lib_Tensor;
struct __pyx_obj_7pyarrow_3lib_SparseCSRMatrix;
struct __pyx_obj_7pyarrow_3lib_SparseCSCMatrix;
struct __pyx_obj_7pyarrow_3lib_SparseCOOTensor;
struct __pyx_obj_7pyarrow_3lib_SparseCSFTensor;
struct __pyx_obj_7pyarrow_3lib_NullArray;
struct __pyx_obj_7pyarrow_3lib_BooleanArray;
struct __pyx_obj_7pyarrow_3lib_NumericArray;
struct __pyx_obj_7pyarrow_3lib_IntegerArray;
struct __pyx_obj_7pyarrow_3lib_FloatingPointArray;
struct __pyx_obj_7pyarrow_3lib_Int8Array;
struct __pyx_obj_7pyarrow_3lib_UInt8Array;
struct __pyx_obj_7pyarrow_3lib_Int16Array;
struct __pyx_obj_7pyarrow_3lib_UInt16Array;
struct __pyx_obj_7pyarrow_3lib_Int32Array;
struct __pyx_obj_7pyarrow_3lib_UInt32Array;
struct __pyx_obj_7pyarrow_3lib_Int64Array;
struct __pyx_obj_7pyarrow_3lib_UInt64Array;
struct __pyx_obj_7pyarrow_3lib_HalfFloatArray;
struct __pyx_obj_7pyarrow_3lib_FloatArray;
struct __pyx_obj_7pyarrow_3lib_DoubleArray;
struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray;
struct __pyx_obj_7pyarrow_3lib_Decimal32Array;
struct __pyx_obj_7pyarrow_3lib_Decimal64Array;
struct __pyx_obj_7pyarrow_3lib_Decimal128Array;
struct __pyx_obj_7pyarrow_3lib_Decimal256Array;
struct __pyx_obj_7pyarrow_3lib_StructArray;
struct __pyx_obj_7pyarrow_3lib_BaseListArray;
struct __pyx_obj_7pyarrow_3lib_ListArray;
struct __pyx_obj_7pyarrow_3lib_LargeListArray;
struct __pyx_obj_7pyarrow_3lib_ListViewArray;
struct __pyx_obj_7pyarrow_3lib_LargeListViewArray;
struct __pyx_obj_7pyarrow_3lib_MapArray;
struct __pyx_obj_7pyarrow_3lib_FixedSizeListArray;
struct __pyx_obj_7pyarrow_3lib_UnionArray;
struct __pyx_obj_7pyarrow_3lib_StringArray;
struct __pyx_obj_7pyarrow_3lib_BinaryArray;
struct __pyx_obj_7pyarrow_3lib_StringViewArray;
struct __pyx_obj_7pyarrow_3lib_BinaryViewArray;
struct __pyx_obj_7pyarrow_3lib_DictionaryArray;
struct __pyx_obj_7pyarrow_3lib_ExtensionArray;
struct __pyx_obj_7pyarrow_3lib_MonthDayNanoIntervalArray;
struct __pyx_obj_7pyarrow_3lib_ChunkedArray;
struct __pyx_obj_7pyarrow_3lib__Tabular;
struct __pyx_obj_7pyarrow_3lib_Table;
struct __pyx_obj_7pyarrow_3lib_RecordBatch;
struct __pyx_obj_7pyarrow_3lib_Device;
struct __pyx_obj_7pyarrow_3lib_MemoryManager;
struct __pyx_obj_7pyarrow_3lib_Buffer;
struct __pyx_obj_7pyarrow_3lib_ResizableBuffer;
struct __pyx_obj_7pyarrow_3lib_NativeFile;
struct __pyx_obj_7pyarrow_3lib_BufferedInputStream;
struct __pyx_obj_7pyarrow_3lib_BufferedOutputStream;
struct __pyx_obj_7pyarrow_3lib_CompressedInputStream;
struct __pyx_obj_7pyarrow_3lib_CompressedOutputStream;
struct __pyx_obj_7pyarrow_3lib__CRecordBatchWriter;
struct __pyx_obj_7pyarrow_3lib_RecordBatchReader;
struct __pyx_obj_7pyarrow_3lib_CacheOptions;
struct __pyx_obj_7pyarrow_3lib_Codec;
struct __pyx_obj_7pyarrow_3lib_StopToken;
struct __pyx_obj_7pyarrow_8_compute_UdfContext;
struct __pyx_obj_7pyarrow_8_compute_FunctionOptions;
struct __pyx_obj_7pyarrow_8_compute__SortOptions;
struct __pyx_obj_7pyarrow_8_compute_Expression;
struct __pyx_obj_7pyarrow_8_compute_Kernel;
struct __pyx_obj_7pyarrow_8_compute_ScalarKernel;
struct __pyx_obj_7pyarrow_8_compute_VectorKernel;
struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel;
struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel;
struct __pyx_obj_7pyarrow_8_compute_Function;
struct __pyx_obj_7pyarrow_8_compute_ScalarFunction;
struct __pyx_obj_7pyarrow_8_compute_VectorFunction;
struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction;
struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction;
struct __pyx_obj_7pyarrow_8_compute_MetaFunction;
struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry;
struct __pyx_obj_7pyarrow_8_compute__CastOptions;
struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions;
struct __pyx_obj_7pyarrow_8_compute__RoundOptions;
struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions;
struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions;
struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions;
struct __pyx_obj_7pyarrow_8_compute__JoinOptions;
struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions;
struct __pyx_obj_7pyarrow_8_compute__PadOptions;
struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions;
struct __pyx_obj_7pyarrow_8_compute__TrimOptions;
struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions;
struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions;
struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions;
struct __pyx_obj_7pyarrow_8_compute__SliceOptions;
struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions;
struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions;
struct __pyx_obj_7pyarrow_8_compute__FilterOptions;
struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions;
struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions;
struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions;
struct __pyx_obj_7pyarrow_8_compute__ScatterOptions;
struct __pyx_obj_7pyarrow_8_compute__TakeOptions;
struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions;
struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions;
struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions;
struct __pyx_obj_7pyarrow_8_compute__CountOptions;
struct __pyx_obj_7pyarrow_8_compute__IndexOptions;
struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions;
struct __pyx_obj_7pyarrow_8_compute__ModeOptions;
struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions;
struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions;
struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions;
struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions;
struct __pyx_obj_7pyarrow_8_compute__WeekOptions;
struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions;
struct __pyx_obj_7pyarrow_8_compute__NullOptions;
struct __pyx_obj_7pyarrow_8_compute__VarianceOptions;
struct __pyx_obj_7pyarrow_8_compute__SkewOptions;
struct __pyx_obj_7pyarrow_8_compute__SplitOptions;
struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions;
struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions;
struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions;
struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions;
struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions;
struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions;
struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions;
struct __pyx_obj_7pyarrow_8_compute__SelectKOptions;
struct __pyx_obj_7pyarrow_8_compute__QuantileOptions;
struct __pyx_obj_7pyarrow_8_compute__TDigestOptions;
struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions;
struct __pyx_obj_7pyarrow_8_compute__RandomOptions;
struct __pyx_obj_7pyarrow_8_compute__RankOptions;
struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions;
struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions;
struct __pyx_obj_7pyarrow_8_compute_RegisterUdf;
struct __pyx_defaults;
struct __pyx_opt_args_7cpython_11contextvars_get_value;
struct __pyx_opt_args_7cpython_11contextvars_get_value_no_default;

/* "cpython/contextvars.pxd":116
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 * cdef inline object get_value(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the default value of the context variable,
*/
struct __pyx_opt_args_7cpython_11contextvars_get_value {
  int __pyx_n;
  PyObject *default_value;
};

/* "cpython/contextvars.pxd":134
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 * cdef inline object get_value_no_default(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the provided default value if no such value was found.
*/
struct __pyx_opt_args_7cpython_11contextvars_get_value_no_default {
  int __pyx_n;
  PyObject *default_value;
};
struct __pyx_opt_args_7cpython_8datetime_time_new;
struct __pyx_opt_args_7cpython_8datetime_datetime_new;
struct __pyx_opt_args_7cpython_8datetime_timezone_new;
struct __pyx_opt_args_7cpython_8datetime_datetime_from_timestamp;

/* "cpython/datetime.pxd":265
 * # Create time object using DateTime CAPI factory function
 * # Note, there are no range checks for any of the arguments.
 * cdef inline time time_new(int hour, int minute, int second, int microsecond, object tz, int fold=0):             # <<<<<<<<<<<<<<
 *     return __Pyx_DateTime_TimeWithFold(hour, minute, second, microsecond, tz, fold)
 * 
*/
struct __pyx_opt_args_7cpython_8datetime_time_new {
  int __pyx_n;
  int fold;
};

/* "cpython/datetime.pxd":270
 * # Create datetime object using DateTime CAPI factory function.
 * # Note, there are no range checks for any of the arguments.
 * cdef inline datetime datetime_new(int year, int month, int day, int hour, int minute, int second, int microsecond, object tz, int fold=0):             # <<<<<<<<<<<<<<
 *     return __Pyx_DateTime_DateTimeWithFold(year, month, day, hour, minute, second, microsecond, tz, fold)
 * 
*/
struct __pyx_opt_args_7cpython_8datetime_datetime_new {
  int __pyx_n;
  int fold;
};

/* "cpython/datetime.pxd":279
 * 
 * # Create timedelta object using DateTime CAPI factory function.
 * cdef inline object timezone_new(object offset, object name=None):             # <<<<<<<<<<<<<<
 *     return __Pyx_TimeZone_FromOffsetAndName(offset, <PyObject*>name if name is not None else NULL)
 * 
*/
struct __pyx_opt_args_7cpython_8datetime_timezone_new {
  int __pyx_n;
  PyObject *name;
};

/* "cpython/datetime.pxd":283
 * 
 * # Create datetime object using DB API constructor.
 * cdef inline datetime datetime_from_timestamp(timestamp, tz=None):             # <<<<<<<<<<<<<<
 *     return PyDateTimeAPI.DateTime_FromTimestamp(
 *         <PyObject*>PyDateTimeAPI.DateTimeType, (timestamp, tz) if tz is not None else (timestamp,), NULL)
*/
struct __pyx_opt_args_7cpython_8datetime_datetime_from_timestamp {
  int __pyx_n;
  PyObject *tz;
};

/* "pyarrow/includes/libarrow.pxd":1560
 * 
 * # Use typedef to emulate syntax for std::function<void(..)>
 * ctypedef void CallbackTransform(object, const shared_ptr[CBuffer]& src,             # <<<<<<<<<<<<<<
 *                                 shared_ptr[CBuffer]* dest)
 * 
*/
typedef void __pyx_t_7pyarrow_8includes_8libarrow_CallbackTransform(PyObject *, std::shared_ptr< arrow::Buffer>  const &, std::shared_ptr< arrow::Buffer>  *);

/* "pyarrow/includes/libarrow.pxd":1563
 *                                 shared_ptr[CBuffer]* dest)
 * 
 * ctypedef CResult[shared_ptr[CInputStream]] StreamWrapFunc(             # <<<<<<<<<<<<<<
 *     shared_ptr[CInputStream])
 * 
*/
typedef arrow::Result<std::shared_ptr< arrow::io::InputStream> >  __pyx_t_7pyarrow_8includes_8libarrow_StreamWrapFunc(std::shared_ptr< arrow::io::InputStream> );

/* "pyarrow/includes/libarrow.pxd":3239
 *     int64_t TotalBufferSize(const CTable& table)
 * 
 * ctypedef PyObject* CallbackUdf(object user_function, const CUdfContext& context, object inputs)             # <<<<<<<<<<<<<<
 * 
 * 
*/
typedef PyObject *__pyx_t_7pyarrow_8includes_8libarrow_CallbackUdf(PyObject *,  arrow::py::UdfContext const &, PyObject *);

/* "pyarrow/includes/libarrow_python.pxd":24
 * 
 * 
 * ctypedef CInvalidRowResult PyInvalidRowCallback(object,             # <<<<<<<<<<<<<<
 *                                                 const CCSVInvalidRow&)
 * 
*/
typedef  arrow::csv::InvalidRowResult __pyx_t_7pyarrow_8includes_15libarrow_python_PyInvalidRowCallback(PyObject *,  arrow::csv::InvalidRow const &);
struct __pyx_opt_args_7pyarrow_3lib_ensure_type;

/* "pyarrow/lib.pxd":676
 * 
 * # Default is allow_none=False
 * cpdef DataType ensure_type(object type, bint allow_none=*)             # <<<<<<<<<<<<<<
 * 
 * cdef DataType primitive_type(Type type)
*/
struct __pyx_opt_args_7pyarrow_3lib_ensure_type {
  int __pyx_n;
  int allow_none;
};
struct __pyx_opt_args_7pyarrow_8_compute_unwrap_sort_keys;
struct __pyx_opt_args_7pyarrow_8_compute_17_ListSliceOptions__set_options;

/* "pyarrow/_compute.pxd":68
 * cdef CFieldRef _ensure_field_ref(value) except *
 * 
 * cdef vector[CSortKey] unwrap_sort_keys(sort_keys, allow_str=*) except *             # <<<<<<<<<<<<<<
 * 
 * cdef CSortOrder unwrap_sort_order(order) except *
*/
struct __pyx_opt_args_7pyarrow_8_compute_unwrap_sort_keys {
  int __pyx_n;
  PyObject *allow_str;
};

/* "pyarrow/_compute.pyx":1295
 * 
 * cdef class _ListSliceOptions(FunctionOptions):
 *     cpdef _set_options(self, start, stop=None, step=1, return_fixed_size_list=None):             # <<<<<<<<<<<<<<
 *         cdef:
 *             CListSliceOptions* opts
*/
struct __pyx_opt_args_7pyarrow_8_compute_17_ListSliceOptions__set_options {
  int __pyx_n;
  PyObject *stop;
  PyObject *step;
  PyObject *return_fixed_size_list;
};

/* "pyarrow/_compute.pyx":3025
 * 
 * 
 * ctypedef CStatus (*CRegisterUdf)(PyObject* function, function[CallbackUdf] wrapper,             # <<<<<<<<<<<<<<
 *                                  const CUdfOptions& options, CFunctionRegistry* registry)
 * 
*/
typedef arrow::Status (*__pyx_t_7pyarrow_8_compute_CRegisterUdf)(PyObject *, std::function<__pyx_t_7pyarrow_8includes_8libarrow_CallbackUdf> ,  arrow::py::UdfOptions const &,  arrow::compute::FunctionRegistry *);

/* "pyarrow/lib.pxd":37
 * 
 * 
 * cdef class _Weakrefable:             # <<<<<<<<<<<<<<
 *     cdef object __weakref__
 * 
*/
struct __pyx_obj_7pyarrow_3lib__Weakrefable {
  PyObject_HEAD
  PyObject *__weakref__;
};


/* "pyarrow/lib.pxd":41
 * 
 * 
 * cdef class IpcWriteOptions(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         CIpcWriteOptions c_options
*/
struct __pyx_obj_7pyarrow_3lib_IpcWriteOptions {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
   arrow::ipc::IpcWriteOptions c_options;
};


/* "pyarrow/lib.pxd":49
 * 
 * 
 * cdef class IpcReadOptions(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         CIpcReadOptions c_options
*/
struct __pyx_obj_7pyarrow_3lib_IpcReadOptions {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
   arrow::ipc::IpcReadOptions c_options;
};


/* "pyarrow/lib.pxd":60
 * 
 * 
 * cdef class Message(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         unique_ptr[CMessage] message
*/
struct __pyx_obj_7pyarrow_3lib_Message {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  std::unique_ptr< arrow::ipc::Message>  message;
};


/* "pyarrow/lib.pxd":65
 * 
 * 
 * cdef class MemoryPool(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         CMemoryPool* pool
*/
struct __pyx_obj_7pyarrow_3lib_MemoryPool {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_MemoryPool *__pyx_vtab;
   arrow::MemoryPool *pool;
};


/* "pyarrow/lib.pxd":78
 * 
 * 
 * cdef class DataType(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CDataType] sp_type
*/
struct __pyx_obj_7pyarrow_3lib_DataType {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType *__pyx_vtab;
  std::shared_ptr< arrow::DataType>  sp_type;
   arrow::DataType *type;
  PyObject *pep3118_format;
};


/* "pyarrow/lib.pxd":88
 * 
 * 
 * cdef class ListType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CListType* list_type
*/
struct __pyx_obj_7pyarrow_3lib_ListType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::ListType const *list_type;
};


/* "pyarrow/lib.pxd":93
 * 
 * 
 * cdef class LargeListType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CLargeListType* list_type
*/
struct __pyx_obj_7pyarrow_3lib_LargeListType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::LargeListType const *list_type;
};


/* "pyarrow/lib.pxd":98
 * 
 * 
 * cdef class ListViewType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CListViewType* list_view_type
*/
struct __pyx_obj_7pyarrow_3lib_ListViewType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::ListViewType const *list_view_type;
};


/* "pyarrow/lib.pxd":103
 * 
 * 
 * cdef class LargeListViewType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CLargeListViewType* list_view_type
*/
struct __pyx_obj_7pyarrow_3lib_LargeListViewType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::LargeListViewType const *list_view_type;
};


/* "pyarrow/lib.pxd":108
 * 
 * 
 * cdef class MapType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CMapType* map_type
*/
struct __pyx_obj_7pyarrow_3lib_MapType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::MapType const *map_type;
};


/* "pyarrow/lib.pxd":113
 * 
 * 
 * cdef class FixedSizeListType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CFixedSizeListType* list_type
*/
struct __pyx_obj_7pyarrow_3lib_FixedSizeListType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::FixedSizeListType const *list_type;
};


/* "pyarrow/lib.pxd":118
 * 
 * 
 * cdef class StructType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CStructType* struct_type
*/
struct __pyx_obj_7pyarrow_3lib_StructType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::StructType const *struct_type;
};


/* "pyarrow/lib.pxd":125
 * 
 * 
 * cdef class DictionaryMemo(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         # Even though the CDictionaryMemo instance is private, we allocate
*/
struct __pyx_obj_7pyarrow_3lib_DictionaryMemo {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  std::shared_ptr< arrow::ipc::DictionaryMemo>  sp_memo;
   arrow::ipc::DictionaryMemo *memo;
};


/* "pyarrow/lib.pxd":133
 * 
 * 
 * cdef class DictionaryType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDictionaryType* dict_type
*/
struct __pyx_obj_7pyarrow_3lib_DictionaryType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::DictionaryType const *dict_type;
};


/* "pyarrow/lib.pxd":138
 * 
 * 
 * cdef class TimestampType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CTimestampType* ts_type
*/
struct __pyx_obj_7pyarrow_3lib_TimestampType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::TimestampType const *ts_type;
};


/* "pyarrow/lib.pxd":143
 * 
 * 
 * cdef class Time32Type(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CTime32Type* time_type
*/
struct __pyx_obj_7pyarrow_3lib_Time32Type {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::Time32Type const *time_type;
};


/* "pyarrow/lib.pxd":148
 * 
 * 
 * cdef class Time64Type(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CTime64Type* time_type
*/
struct __pyx_obj_7pyarrow_3lib_Time64Type {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::Time64Type const *time_type;
};


/* "pyarrow/lib.pxd":153
 * 
 * 
 * cdef class DurationType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDurationType* duration_type
*/
struct __pyx_obj_7pyarrow_3lib_DurationType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::DurationType const *duration_type;
};


/* "pyarrow/lib.pxd":158
 * 
 * 
 * cdef class FixedSizeBinaryType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CFixedSizeBinaryType* fixed_size_binary_type
*/
struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::FixedSizeBinaryType const *fixed_size_binary_type;
};


/* "pyarrow/lib.pxd":163
 * 
 * 
 * cdef class Decimal32Type(FixedSizeBinaryType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDecimal32Type* decimal32_type
*/
struct __pyx_obj_7pyarrow_3lib_Decimal32Type {
  struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType __pyx_base;
   arrow::Decimal32Type const *decimal32_type;
};


/* "pyarrow/lib.pxd":168
 * 
 * 
 * cdef class Decimal64Type(FixedSizeBinaryType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDecimal64Type* decimal64_type
*/
struct __pyx_obj_7pyarrow_3lib_Decimal64Type {
  struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType __pyx_base;
   arrow::Decimal64Type const *decimal64_type;
};


/* "pyarrow/lib.pxd":173
 * 
 * 
 * cdef class Decimal128Type(FixedSizeBinaryType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDecimal128Type* decimal128_type
*/
struct __pyx_obj_7pyarrow_3lib_Decimal128Type {
  struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType __pyx_base;
   arrow::Decimal128Type const *decimal128_type;
};


/* "pyarrow/lib.pxd":178
 * 
 * 
 * cdef class Decimal256Type(FixedSizeBinaryType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDecimal256Type* decimal256_type
*/
struct __pyx_obj_7pyarrow_3lib_Decimal256Type {
  struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType __pyx_base;
   arrow::Decimal256Type const *decimal256_type;
};


/* "pyarrow/lib.pxd":183
 * 
 * 
 * cdef class RunEndEncodedType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CRunEndEncodedType* run_end_encoded_type
*/
struct __pyx_obj_7pyarrow_3lib_RunEndEncodedType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::RunEndEncodedType const *run_end_encoded_type;
};


/* "pyarrow/lib.pxd":188
 * 
 * 
 * cdef class BaseExtensionType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CExtensionType* ext_type
*/
struct __pyx_obj_7pyarrow_3lib_BaseExtensionType {
  struct __pyx_obj_7pyarrow_3lib_DataType __pyx_base;
   arrow::ExtensionType const *ext_type;
};


/* "pyarrow/lib.pxd":193
 * 
 * 
 * cdef class ExtensionType(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CPyExtensionType* cpy_ext_type
*/
struct __pyx_obj_7pyarrow_3lib_ExtensionType {
  struct __pyx_obj_7pyarrow_3lib_BaseExtensionType __pyx_base;
   arrow::py::PyExtensionType const *cpy_ext_type;
};


/* "pyarrow/lib.pxd":198
 * 
 * 
 * cdef class FixedShapeTensorType(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CFixedShapeTensorType* tensor_ext_type
*/
struct __pyx_obj_7pyarrow_3lib_FixedShapeTensorType {
  struct __pyx_obj_7pyarrow_3lib_BaseExtensionType __pyx_base;
   arrow::extension::FixedShapeTensorType const *tensor_ext_type;
};


/* "pyarrow/lib.pxd":202
 *         const CFixedShapeTensorType* tensor_ext_type
 * 
 * cdef class Bool8Type(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CBool8Type* bool8_ext_type
*/
struct __pyx_obj_7pyarrow_3lib_Bool8Type {
  struct __pyx_obj_7pyarrow_3lib_BaseExtensionType __pyx_base;
   arrow::extension::Bool8Type const *bool8_ext_type;
};


/* "pyarrow/lib.pxd":206
 *         const CBool8Type* bool8_ext_type
 * 
 * cdef class OpaqueType(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const COpaqueType* opaque_ext_type
*/
struct __pyx_obj_7pyarrow_3lib_OpaqueType {
  struct __pyx_obj_7pyarrow_3lib_BaseExtensionType __pyx_base;
   arrow::extension::OpaqueType const *opaque_ext_type;
};


/* "pyarrow/lib.pxd":210
 *         const COpaqueType* opaque_ext_type
 * 
 * cdef class UuidType(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CUuidType* uuid_ext_type
*/
struct __pyx_obj_7pyarrow_3lib_UuidType {
  struct __pyx_obj_7pyarrow_3lib_BaseExtensionType __pyx_base;
   arrow::extension::UuidType const *uuid_ext_type;
};


/* "pyarrow/lib.pxd":214
 *         const CUuidType* uuid_ext_type
 * 
 * cdef class JsonType(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CJsonType* json_ext_type
*/
struct __pyx_obj_7pyarrow_3lib_JsonType {
  struct __pyx_obj_7pyarrow_3lib_BaseExtensionType __pyx_base;
   arrow::extension::JsonExtensionType const *json_ext_type;
};


/* "pyarrow/lib.pxd":219
 * 
 * 
 * cdef class _Metadata(_Weakrefable):             # <<<<<<<<<<<<<<
 *     # required because KeyValueMetadata also extends collections.abc.Mapping
 *     # and the first parent class must be an extension type
*/
struct __pyx_obj_7pyarrow_3lib__Metadata {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
};


/* "pyarrow/lib.pxd":225
 * 
 * 
 * cdef class KeyValueMetadata(_Metadata):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[const CKeyValueMetadata] wrapped
*/
struct __pyx_obj_7pyarrow_3lib_KeyValueMetadata {
  struct __pyx_obj_7pyarrow_3lib__Metadata __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_KeyValueMetadata *__pyx_vtab;
  std::shared_ptr< arrow::KeyValueMetadata const >  wrapped;
   arrow::KeyValueMetadata const *metadata;
};


/* "pyarrow/lib.pxd":237
 * 
 * 
 * cdef class Field(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CField] sp_field
*/
struct __pyx_obj_7pyarrow_3lib_Field {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_Field *__pyx_vtab;
  std::shared_ptr< arrow::Field>  sp_field;
   arrow::Field *field;
  struct __pyx_obj_7pyarrow_3lib_DataType *type;
};


/* "pyarrow/lib.pxd":248
 * 
 * 
 * cdef class Schema(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CSchema] sp_schema
*/
struct __pyx_obj_7pyarrow_3lib_Schema {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_Schema *__pyx_vtab;
  std::shared_ptr< arrow::Schema>  sp_schema;
   arrow::Schema *schema;
};


/* "pyarrow/lib.pxd":257
 * 
 * 
 * cdef class Scalar(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CScalar] wrapped
*/
struct __pyx_obj_7pyarrow_3lib_Scalar {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_Scalar *__pyx_vtab;
  std::shared_ptr< arrow::Scalar>  wrapped;
};


/* "pyarrow/lib.pxd":269
 * 
 * 
 * cdef class ArrayStatistics(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CArrayStatistics] sp_statistics
*/
struct __pyx_obj_7pyarrow_3lib_ArrayStatistics {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_ArrayStatistics *__pyx_vtab;
  std::shared_ptr< arrow::ArrayStatistics>  sp_statistics;
};


/* "pyarrow/lib.pxd":277
 * 
 * 
 * cdef class _PandasConvertible(_Weakrefable):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib__PandasConvertible {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
};


/* "pyarrow/lib.pxd":281
 * 
 * 
 * cdef class Array(_PandasConvertible):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CArray] sp_array
*/
struct __pyx_obj_7pyarrow_3lib_Array {
  struct __pyx_obj_7pyarrow_3lib__PandasConvertible __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_Array *__pyx_vtab;
  std::shared_ptr< arrow::Array>  sp_array;
   arrow::Array *ap;
  struct __pyx_obj_7pyarrow_3lib_DataType *type;
  PyObject *_name;
};


/* "pyarrow/lib.pxd":297
 * 
 * 
 * cdef class Tensor(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CTensor] sp_tensor
*/
struct __pyx_obj_7pyarrow_3lib_Tensor {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_Tensor *__pyx_vtab;
  std::shared_ptr< arrow::Tensor>  sp_tensor;
   arrow::Tensor *tp;
  struct __pyx_obj_7pyarrow_3lib_DataType *type;
  PyObject *_ssize_t_shape;
  PyObject *_ssize_t_strides;
};


/* "pyarrow/lib.pxd":310
 * 
 * 
 * cdef class SparseCSRMatrix(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CSparseCSRMatrix] sp_sparse_tensor
*/
struct __pyx_obj_7pyarrow_3lib_SparseCSRMatrix {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSRMatrix *__pyx_vtab;
  std::shared_ptr< arrow::SparseCSRMatrix>  sp_sparse_tensor;
   arrow::SparseCSRMatrix *stp;
  struct __pyx_obj_7pyarrow_3lib_DataType *type;
};


/* "pyarrow/lib.pxd":321
 * 
 * 
 * cdef class SparseCSCMatrix(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CSparseCSCMatrix] sp_sparse_tensor
*/
struct __pyx_obj_7pyarrow_3lib_SparseCSCMatrix {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSCMatrix *__pyx_vtab;
  std::shared_ptr< arrow::SparseCSCMatrix>  sp_sparse_tensor;
   arrow::SparseCSCMatrix *stp;
  struct __pyx_obj_7pyarrow_3lib_DataType *type;
};


/* "pyarrow/lib.pxd":332
 * 
 * 
 * cdef class SparseCOOTensor(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CSparseCOOTensor] sp_sparse_tensor
*/
struct __pyx_obj_7pyarrow_3lib_SparseCOOTensor {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_SparseCOOTensor *__pyx_vtab;
  std::shared_ptr< arrow::SparseCOOTensor>  sp_sparse_tensor;
   arrow::SparseCOOTensor *stp;
  struct __pyx_obj_7pyarrow_3lib_DataType *type;
};


/* "pyarrow/lib.pxd":343
 * 
 * 
 * cdef class SparseCSFTensor(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CSparseCSFTensor] sp_sparse_tensor
*/
struct __pyx_obj_7pyarrow_3lib_SparseCSFTensor {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSFTensor *__pyx_vtab;
  std::shared_ptr< arrow::SparseCSFTensor>  sp_sparse_tensor;
   arrow::SparseCSFTensor *stp;
  struct __pyx_obj_7pyarrow_3lib_DataType *type;
};


/* "pyarrow/lib.pxd":354
 * 
 * 
 * cdef class NullArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_NullArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":358
 * 
 * 
 * cdef class BooleanArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_BooleanArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":362
 * 
 * 
 * cdef class NumericArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_NumericArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":366
 * 
 * 
 * cdef class IntegerArray(NumericArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_IntegerArray {
  struct __pyx_obj_7pyarrow_3lib_NumericArray __pyx_base;
};


/* "pyarrow/lib.pxd":370
 * 
 * 
 * cdef class FloatingPointArray(NumericArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_FloatingPointArray {
  struct __pyx_obj_7pyarrow_3lib_NumericArray __pyx_base;
};


/* "pyarrow/lib.pxd":374
 * 
 * 
 * cdef class Int8Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_Int8Array {
  struct __pyx_obj_7pyarrow_3lib_IntegerArray __pyx_base;
};


/* "pyarrow/lib.pxd":378
 * 
 * 
 * cdef class UInt8Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_UInt8Array {
  struct __pyx_obj_7pyarrow_3lib_IntegerArray __pyx_base;
};


/* "pyarrow/lib.pxd":382
 * 
 * 
 * cdef class Int16Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_Int16Array {
  struct __pyx_obj_7pyarrow_3lib_IntegerArray __pyx_base;
};


/* "pyarrow/lib.pxd":386
 * 
 * 
 * cdef class UInt16Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_UInt16Array {
  struct __pyx_obj_7pyarrow_3lib_IntegerArray __pyx_base;
};


/* "pyarrow/lib.pxd":390
 * 
 * 
 * cdef class Int32Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_Int32Array {
  struct __pyx_obj_7pyarrow_3lib_IntegerArray __pyx_base;
};


/* "pyarrow/lib.pxd":394
 * 
 * 
 * cdef class UInt32Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_UInt32Array {
  struct __pyx_obj_7pyarrow_3lib_IntegerArray __pyx_base;
};


/* "pyarrow/lib.pxd":398
 * 
 * 
 * cdef class Int64Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_Int64Array {
  struct __pyx_obj_7pyarrow_3lib_IntegerArray __pyx_base;
};


/* "pyarrow/lib.pxd":402
 * 
 * 
 * cdef class UInt64Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_UInt64Array {
  struct __pyx_obj_7pyarrow_3lib_IntegerArray __pyx_base;
};


/* "pyarrow/lib.pxd":406
 * 
 * 
 * cdef class HalfFloatArray(FloatingPointArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_HalfFloatArray {
  struct __pyx_obj_7pyarrow_3lib_FloatingPointArray __pyx_base;
};


/* "pyarrow/lib.pxd":410
 * 
 * 
 * cdef class FloatArray(FloatingPointArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_FloatArray {
  struct __pyx_obj_7pyarrow_3lib_FloatingPointArray __pyx_base;
};


/* "pyarrow/lib.pxd":414
 * 
 * 
 * cdef class DoubleArray(FloatingPointArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_DoubleArray {
  struct __pyx_obj_7pyarrow_3lib_FloatingPointArray __pyx_base;
};


/* "pyarrow/lib.pxd":418
 * 
 * 
 * cdef class FixedSizeBinaryArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":422
 * 
 * 
 * cdef class Decimal32Array(FixedSizeBinaryArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_Decimal32Array {
  struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray __pyx_base;
};


/* "pyarrow/lib.pxd":426
 * 
 * 
 * cdef class Decimal64Array(FixedSizeBinaryArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_Decimal64Array {
  struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray __pyx_base;
};


/* "pyarrow/lib.pxd":430
 * 
 * 
 * cdef class Decimal128Array(FixedSizeBinaryArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_Decimal128Array {
  struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray __pyx_base;
};


/* "pyarrow/lib.pxd":434
 * 
 * 
 * cdef class Decimal256Array(FixedSizeBinaryArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_Decimal256Array {
  struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray __pyx_base;
};


/* "pyarrow/lib.pxd":438
 * 
 * 
 * cdef class StructArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_StructArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":442
 * 
 * 
 * cdef class BaseListArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_BaseListArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":446
 * 
 * 
 * cdef class ListArray(BaseListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_ListArray {
  struct __pyx_obj_7pyarrow_3lib_BaseListArray __pyx_base;
};


/* "pyarrow/lib.pxd":450
 * 
 * 
 * cdef class LargeListArray(BaseListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_LargeListArray {
  struct __pyx_obj_7pyarrow_3lib_BaseListArray __pyx_base;
};


/* "pyarrow/lib.pxd":454
 * 
 * 
 * cdef class ListViewArray(BaseListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_ListViewArray {
  struct __pyx_obj_7pyarrow_3lib_BaseListArray __pyx_base;
};


/* "pyarrow/lib.pxd":458
 * 
 * 
 * cdef class LargeListViewArray(BaseListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_LargeListViewArray {
  struct __pyx_obj_7pyarrow_3lib_BaseListArray __pyx_base;
};


/* "pyarrow/lib.pxd":462
 * 
 * 
 * cdef class MapArray(ListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_MapArray {
  struct __pyx_obj_7pyarrow_3lib_ListArray __pyx_base;
};


/* "pyarrow/lib.pxd":466
 * 
 * 
 * cdef class FixedSizeListArray(BaseListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_FixedSizeListArray {
  struct __pyx_obj_7pyarrow_3lib_BaseListArray __pyx_base;
};


/* "pyarrow/lib.pxd":470
 * 
 * 
 * cdef class UnionArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_UnionArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":474
 * 
 * 
 * cdef class StringArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_StringArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":478
 * 
 * 
 * cdef class BinaryArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_BinaryArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":482
 * 
 * 
 * cdef class StringViewArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_StringViewArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":486
 * 
 * 
 * cdef class BinaryViewArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_BinaryViewArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":490
 * 
 * 
 * cdef class DictionaryArray(Array):             # <<<<<<<<<<<<<<
 *     cdef:
 *         object _indices, _dictionary
*/
struct __pyx_obj_7pyarrow_3lib_DictionaryArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
  PyObject *_indices;
  PyObject *_dictionary;
};


/* "pyarrow/lib.pxd":495
 * 
 * 
 * cdef class ExtensionArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_ExtensionArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":499
 * 
 * 
 * cdef class MonthDayNanoIntervalArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_MonthDayNanoIntervalArray {
  struct __pyx_obj_7pyarrow_3lib_Array __pyx_base;
};


/* "pyarrow/lib.pxd":507
 * 
 * 
 * cdef class ChunkedArray(_PandasConvertible):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CChunkedArray] sp_chunked_array
*/
struct __pyx_obj_7pyarrow_3lib_ChunkedArray {
  struct __pyx_obj_7pyarrow_3lib__PandasConvertible __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_ChunkedArray *__pyx_vtab;
  std::shared_ptr< arrow::ChunkedArray>  sp_chunked_array;
   arrow::ChunkedArray *chunked_array;
  bool _is_cpu;
  bool _init_is_cpu;
  PyObject *_name;
};


/* "pyarrow/lib.pxd":522
 * 
 * 
 * cdef class _Tabular(_PandasConvertible):             # <<<<<<<<<<<<<<
 *     cdef void _assert_cpu(self) except *
 * 
*/
struct __pyx_obj_7pyarrow_3lib__Tabular {
  struct __pyx_obj_7pyarrow_3lib__PandasConvertible __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib__Tabular *__pyx_vtab;
};


/* "pyarrow/lib.pxd":526
 * 
 * 
 * cdef class Table(_Tabular):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CTable] sp_table
*/
struct __pyx_obj_7pyarrow_3lib_Table {
  struct __pyx_obj_7pyarrow_3lib__Tabular __pyx_base;
  std::shared_ptr< arrow::Table>  sp_table;
   arrow::Table *table;
  bool _is_cpu;
  bool _init_is_cpu;
};


/* "pyarrow/lib.pxd":536
 * 
 * 
 * cdef class RecordBatch(_Tabular):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CRecordBatch] sp_batch
*/
struct __pyx_obj_7pyarrow_3lib_RecordBatch {
  struct __pyx_obj_7pyarrow_3lib__Tabular __pyx_base;
  std::shared_ptr< arrow::RecordBatch>  sp_batch;
   arrow::RecordBatch *batch;
  struct __pyx_obj_7pyarrow_3lib_Schema *_schema;
};


/* "pyarrow/lib.pxd":545
 * 
 * 
 * cdef class Device(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CDevice] device
*/
struct __pyx_obj_7pyarrow_3lib_Device {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_Device *__pyx_vtab;
  std::shared_ptr< arrow::Device>  device;
};


/* "pyarrow/lib.pxd":557
 * 
 * 
 * cdef class MemoryManager(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CMemoryManager] memory_manager
*/
struct __pyx_obj_7pyarrow_3lib_MemoryManager {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_MemoryManager *__pyx_vtab;
  std::shared_ptr< arrow::MemoryManager>  memory_manager;
};


/* "pyarrow/lib.pxd":569
 * 
 * 
 * cdef class Buffer(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CBuffer] buffer
*/
struct __pyx_obj_7pyarrow_3lib_Buffer {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_Buffer *__pyx_vtab;
  std::shared_ptr< arrow::Buffer>  buffer;
  Py_ssize_t shape[1];
  Py_ssize_t strides[1];
};


/* "pyarrow/lib.pxd":579
 * 
 * 
 * cdef class ResizableBuffer(Buffer):             # <<<<<<<<<<<<<<
 * 
 *     cdef void init_rz(self, const shared_ptr[CResizableBuffer]& buffer)
*/
struct __pyx_obj_7pyarrow_3lib_ResizableBuffer {
  struct __pyx_obj_7pyarrow_3lib_Buffer __pyx_base;
};


/* "pyarrow/lib.pxd":584
 * 
 * 
 * cdef class NativeFile(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CInputStream] input_stream
*/
struct __pyx_obj_7pyarrow_3lib_NativeFile {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_NativeFile *__pyx_vtab;
  std::shared_ptr< arrow::io::InputStream>  input_stream;
  std::shared_ptr< arrow::io::RandomAccessFile>  random_access;
  std::shared_ptr< arrow::io::OutputStream>  output_stream;
  int is_readable;
  int is_writable;
  int is_seekable;
  int _is_appending;
  int own_file;
};


/* "pyarrow/lib.pxd":608
 * 
 * 
 * cdef class BufferedInputStream(NativeFile):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_BufferedInputStream {
  struct __pyx_obj_7pyarrow_3lib_NativeFile __pyx_base;
};


/* "pyarrow/lib.pxd":612
 * 
 * 
 * cdef class BufferedOutputStream(NativeFile):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_BufferedOutputStream {
  struct __pyx_obj_7pyarrow_3lib_NativeFile __pyx_base;
};


/* "pyarrow/lib.pxd":616
 * 
 * 
 * cdef class CompressedInputStream(NativeFile):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_CompressedInputStream {
  struct __pyx_obj_7pyarrow_3lib_NativeFile __pyx_base;
};


/* "pyarrow/lib.pxd":620
 * 
 * 
 * cdef class CompressedOutputStream(NativeFile):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_3lib_CompressedOutputStream {
  struct __pyx_obj_7pyarrow_3lib_NativeFile __pyx_base;
};


/* "pyarrow/lib.pxd":624
 * 
 * 
 * cdef class _CRecordBatchWriter(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         SharedPtrNoGIL[CRecordBatchWriter] writer
*/
struct __pyx_obj_7pyarrow_3lib__CRecordBatchWriter {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  arrow::py::SharedPtrNoGIL< arrow::ipc::RecordBatchWriter>  writer;
};


/* "pyarrow/lib.pxd":629
 * 
 * 
 * cdef class RecordBatchReader(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         SharedPtrNoGIL[CRecordBatchReader] reader
*/
struct __pyx_obj_7pyarrow_3lib_RecordBatchReader {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  arrow::py::SharedPtrNoGIL< arrow::RecordBatchReader>  reader;
};


/* "pyarrow/lib.pxd":634
 * 
 * 
 * cdef class CacheOptions(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         CCacheOptions wrapped
*/
struct __pyx_obj_7pyarrow_3lib_CacheOptions {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_CacheOptions *__pyx_vtab;
  arrow::io::CacheOptions wrapped;
};


/* "pyarrow/lib.pxd":646
 * 
 * 
 * cdef class Codec(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CCodec] wrapped
*/
struct __pyx_obj_7pyarrow_3lib_Codec {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_3lib_Codec *__pyx_vtab;
  std::shared_ptr< arrow::util::Codec>  wrapped;
};


/* "pyarrow/lib.pxd":654
 * 
 * # This class is only used internally for now
 * cdef class StopToken:             # <<<<<<<<<<<<<<
 *     cdef:
 *         CStopToken stop_token
*/
struct __pyx_obj_7pyarrow_3lib_StopToken {
  PyObject_HEAD
  struct __pyx_vtabstruct_7pyarrow_3lib_StopToken *__pyx_vtab;
  arrow::StopToken stop_token;
};


/* "pyarrow/_compute.pxd":24
 * from pyarrow.includes.libarrow cimport *
 * 
 * cdef class UdfContext(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         CUdfContext c_context
*/
struct __pyx_obj_7pyarrow_8_compute_UdfContext {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_8_compute_UdfContext *__pyx_vtab;
   arrow::py::UdfContext c_context;
};


/* "pyarrow/_compute.pxd":31
 * 
 * 
 * cdef class FunctionOptions(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CFunctionOptions] wrapped
*/
struct __pyx_obj_7pyarrow_8_compute_FunctionOptions {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions *__pyx_vtab;
  std::shared_ptr< arrow::compute::FunctionOptions>  wrapped;
};


/* "pyarrow/_compute.pxd":41
 * 
 * 
 * cdef class _SortOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/
struct __pyx_obj_7pyarrow_8_compute__SortOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pxd":48
 * 
 * 
 * cdef class Expression(_Weakrefable):             # <<<<<<<<<<<<<<
 * 
 *     cdef:
*/
struct __pyx_obj_7pyarrow_8_compute_Expression {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_8_compute_Expression *__pyx_vtab;
  arrow::compute::Expression expr;
};


/* "pyarrow/_compute.pyx":196
 * 
 * 
 * cdef class Kernel(_Weakrefable):             # <<<<<<<<<<<<<<
 *     """
 *     A kernel object.
*/
struct __pyx_obj_7pyarrow_8_compute_Kernel {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
};


/* "pyarrow/_compute.pyx":207
 * 
 * 
 * cdef class ScalarKernel(Kernel):             # <<<<<<<<<<<<<<
 *     cdef const CScalarKernel* kernel
 * 
*/
struct __pyx_obj_7pyarrow_8_compute_ScalarKernel {
  struct __pyx_obj_7pyarrow_8_compute_Kernel __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarKernel *__pyx_vtab;
   arrow::compute::ScalarKernel const *kernel;
};


/* "pyarrow/_compute.pyx":217
 * 
 * 
 * cdef class VectorKernel(Kernel):             # <<<<<<<<<<<<<<
 *     cdef const CVectorKernel* kernel
 * 
*/
struct __pyx_obj_7pyarrow_8_compute_VectorKernel {
  struct __pyx_obj_7pyarrow_8_compute_Kernel __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_8_compute_VectorKernel *__pyx_vtab;
   arrow::compute::VectorKernel const *kernel;
};


/* "pyarrow/_compute.pyx":227
 * 
 * 
 * cdef class ScalarAggregateKernel(Kernel):             # <<<<<<<<<<<<<<
 *     cdef const CScalarAggregateKernel* kernel
 * 
*/
struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel {
  struct __pyx_obj_7pyarrow_8_compute_Kernel __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarAggregateKernel *__pyx_vtab;
   arrow::compute::ScalarAggregateKernel const *kernel;
};


/* "pyarrow/_compute.pyx":237
 * 
 * 
 * cdef class HashAggregateKernel(Kernel):             # <<<<<<<<<<<<<<
 *     cdef const CHashAggregateKernel* kernel
 * 
*/
struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel {
  struct __pyx_obj_7pyarrow_8_compute_Kernel __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_8_compute_HashAggregateKernel *__pyx_vtab;
   arrow::compute::HashAggregateKernel const *kernel;
};


/* "pyarrow/_compute.pyx":253
 * 
 * 
 * cdef class Function(_Weakrefable):             # <<<<<<<<<<<<<<
 *     """
 *     A compute function.
*/
struct __pyx_obj_7pyarrow_8_compute_Function {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_8_compute_Function *__pyx_vtab;
  std::shared_ptr< arrow::compute::Function>  sp_func;
   arrow::compute::Function *base_func;
};


/* "pyarrow/_compute.pyx":407
 * 
 * 
 * cdef class ScalarFunction(Function):             # <<<<<<<<<<<<<<
 *     cdef const CScalarFunction* func
 * 
*/
struct __pyx_obj_7pyarrow_8_compute_ScalarFunction {
  struct __pyx_obj_7pyarrow_8_compute_Function __pyx_base;
   arrow::compute::ScalarFunction const *func;
};


/* "pyarrow/_compute.pyx":423
 * 
 * 
 * cdef class VectorFunction(Function):             # <<<<<<<<<<<<<<
 *     cdef const CVectorFunction* func
 * 
*/
struct __pyx_obj_7pyarrow_8_compute_VectorFunction {
  struct __pyx_obj_7pyarrow_8_compute_Function __pyx_base;
   arrow::compute::VectorFunction const *func;
};


/* "pyarrow/_compute.pyx":439
 * 
 * 
 * cdef class ScalarAggregateFunction(Function):             # <<<<<<<<<<<<<<
 *     cdef const CScalarAggregateFunction* func
 * 
*/
struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction {
  struct __pyx_obj_7pyarrow_8_compute_Function __pyx_base;
   arrow::compute::ScalarAggregateFunction const *func;
};


/* "pyarrow/_compute.pyx":456
 * 
 * 
 * cdef class HashAggregateFunction(Function):             # <<<<<<<<<<<<<<
 *     cdef const CHashAggregateFunction* func
 * 
*/
struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction {
  struct __pyx_obj_7pyarrow_8_compute_Function __pyx_base;
   arrow::compute::HashAggregateFunction const *func;
};


/* "pyarrow/_compute.pyx":472
 * 
 * 
 * cdef class MetaFunction(Function):             # <<<<<<<<<<<<<<
 *     cdef const CMetaFunction* func
 * 
*/
struct __pyx_obj_7pyarrow_8_compute_MetaFunction {
  struct __pyx_obj_7pyarrow_8_compute_Function __pyx_base;
   arrow::compute::MetaFunction const *func;
};


/* "pyarrow/_compute.pyx":523
 * 
 * 
 * cdef class FunctionRegistry(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef CFunctionRegistry* registry
 * 
*/
struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
   arrow::compute::FunctionRegistry *registry;
};


/* "pyarrow/_compute.pyx":674
 * # 2. a Python derived class that implements the constructor
 * 
 * cdef class _CastOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     cdef CCastOptions* options
 * 
*/
struct __pyx_obj_7pyarrow_8_compute__CastOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
   arrow::compute::CastOptions *options;
};


/* "pyarrow/_compute.pyx":849
 * 
 * 
 * cdef class _ElementWiseAggregateOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, skip_nulls):
 *         self.wrapped.reset(new CElementWiseAggregateOptions(skip_nulls))
*/
struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":891
 * 
 * 
 * cdef class _RoundOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, ndigits, round_mode):
 *         self.wrapped.reset(
*/
struct __pyx_obj_7pyarrow_8_compute__RoundOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":917
 * 
 * 
 * cdef class _RoundBinaryOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, round_mode):
 *         self.wrapped.reset(
*/
struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":967
 * 
 * 
 * cdef class _RoundTemporalOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, multiple, unit, week_starts_monday,
 *                      ceil_is_strictly_greater, calendar_based_origin):
*/
struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1030
 * 
 * 
 * cdef class _RoundToMultipleOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, multiple, round_mode):
 *         if not isinstance(multiple, Scalar):
*/
struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1066
 * 
 * 
 * cdef class _JoinOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _null_handling_map = {
 *         "emit_null": CJoinNullHandlingBehavior_EMIT_NULL,
*/
struct __pyx_obj_7pyarrow_8_compute__JoinOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1101
 * 
 * 
 * cdef class _MatchSubstringOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pattern, ignore_case):
 *         self.wrapped.reset(
*/
struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1124
 * 
 * 
 * cdef class _PadOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, width, padding, lean_left_on_odd_padding):
 *         self.wrapped.reset(new CPadOptions(width, tobytes(padding), lean_left_on_odd_padding))
*/
struct __pyx_obj_7pyarrow_8_compute__PadOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1149
 * 
 * 
 * cdef class _ZeroFillOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, width, padding):
 *         self.wrapped.reset(new CZeroFillOptions(width, tobytes(padding)))
*/
struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1179
 * 
 * 
 * cdef class _TrimOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, characters):
 *         self.wrapped.reset(new CTrimOptions(tobytes(characters)))
*/
struct __pyx_obj_7pyarrow_8_compute__TrimOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1198
 * 
 * 
 * cdef class _ReplaceSubstringOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pattern, replacement, max_replacements):
 *         self.wrapped.reset(
*/
struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1228
 * 
 * 
 * cdef class _ExtractRegexOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pattern):
 *         self.wrapped.reset(new CExtractRegexOptions(tobytes(pattern)))
*/
struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1247
 * 
 * 
 * cdef class _ExtractRegexSpanOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pattern):
 *         self.wrapped.reset(new CExtractRegexSpanOptions(tobytes(pattern)))
*/
struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1266
 * 
 * 
 * cdef class _SliceOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, start, stop, step):
 *         self.wrapped.reset(new CSliceOptions(start, stop, step))
*/
struct __pyx_obj_7pyarrow_8_compute__SliceOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1294
 * 
 * 
 * cdef class _ListSliceOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     cpdef _set_options(self, start, stop=None, step=1, return_fixed_size_list=None):
 *         cdef:
*/
struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1333
 * 
 * 
 * cdef class _ReplaceSliceOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, start, stop, replacement):
 *         self.wrapped.reset(
*/
struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1358
 * 
 * 
 * cdef class _FilterOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _null_selection_map = {
 *         "drop": CFilterNullSelectionBehavior_DROP,
*/
struct __pyx_obj_7pyarrow_8_compute__FilterOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1391
 * 
 * 
 * cdef class _DictionaryEncodeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _null_encoding_map = {
 *         "encode": CDictionaryEncodeNullEncodingBehavior_ENCODE,
*/
struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1425
 * 
 * 
 * cdef class _RunEndEncodeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, run_end_type):
 *         run_end_ty = ensure_type(run_end_type)
*/
struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1447
 * 
 * 
 * cdef class _InversePermutationOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, max_index=-1, output_type=None):
 *         cdef optional[shared_ptr[CDataType]] c_output_type = nullopt
*/
struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1479
 * 
 * 
 * cdef class _ScatterOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, max_index):
 *         self.wrapped.reset(new CScatterOptions(max_index))
*/
struct __pyx_obj_7pyarrow_8_compute__ScatterOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1501
 * 
 * 
 * cdef class _TakeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, boundscheck):
 *         self.wrapped.reset(new CTakeOptions(boundscheck))
*/
struct __pyx_obj_7pyarrow_8_compute__TakeOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1522
 * 
 * 
 * cdef class _MakeStructOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, field_names, field_nullability, field_metadata):
 *         cdef:
*/
struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1588
 * 
 * 
 * cdef class _StructFieldOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, indices):
 * 
*/
struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1616
 * 
 * 
 * cdef class _ScalarAggregateOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, skip_nulls, min_count):
 *         self.wrapped.reset(new CScalarAggregateOptions(skip_nulls, min_count))
*/
struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1635
 * 
 * 
 * cdef class _CountOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _mode_map = {
 *         "only_valid": CCountMode_ONLY_VALID,
*/
struct __pyx_obj_7pyarrow_8_compute__CountOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1664
 * 
 * 
 * cdef class _IndexOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, scalar):
 *         self.wrapped.reset(new CIndexOptions(pyarrow_unwrap_scalar(scalar)))
*/
struct __pyx_obj_7pyarrow_8_compute__IndexOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1683
 * 
 * 
 * cdef class _MapLookupOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _occurrence_map = {
 *         "all": CMapLookupOccurrence_ALL,
*/
struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1723
 * 
 * 
 * cdef class _ModeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, n, skip_nulls, min_count):
 *         self.wrapped.reset(new CModeOptions(n, skip_nulls, min_count))
*/
struct __pyx_obj_7pyarrow_8_compute__ModeOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1744
 * 
 * 
 * cdef class _SetLookupOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, value_set, c_bool skip_nulls):
 *         cdef unique_ptr[CDatum] valset
*/
struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1780
 * 
 * 
 * cdef class _StrptimeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _unit_map = {
 *         "s": TimeUnit_SECOND,
*/
struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1820
 * 
 * 
 * cdef class _StrftimeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, format, locale):
 *         self.wrapped.reset(
*/
struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1843
 * 
 * 
 * cdef class _DayOfWeekOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, count_from_zero, week_start):
 *         self.wrapped.reset(
*/
struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1867
 * 
 * 
 * cdef class _WeekOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, week_starts_monday, count_from_zero,
 *                      first_week_is_fully_in_year):
*/
struct __pyx_obj_7pyarrow_8_compute__WeekOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1901
 * 
 * 
 * cdef class _AssumeTimezoneOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _ambiguous_map = {
 *         "raise": CAssumeTimezoneAmbiguous_AMBIGUOUS_RAISE,
*/
struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1947
 * 
 * 
 * cdef class _NullOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, nan_is_null):
 *         self.wrapped.reset(new CNullOptions(nan_is_null))
*/
struct __pyx_obj_7pyarrow_8_compute__NullOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1966
 * 
 * 
 * cdef class _VarianceOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, ddof, skip_nulls, min_count):
 *         self.wrapped.reset(new CVarianceOptions(ddof, skip_nulls, min_count))
*/
struct __pyx_obj_7pyarrow_8_compute__VarianceOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":1987
 * 
 * 
 * cdef class _SkewOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, skip_nulls, biased, min_count):
 *         self.wrapped.reset(new CSkewOptions(skip_nulls, biased, min_count))
*/
struct __pyx_obj_7pyarrow_8_compute__SkewOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2009
 * 
 * 
 * cdef class _SplitOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, max_splits, reverse):
 *         self.wrapped.reset(new CSplitOptions(max_splits, reverse))
*/
struct __pyx_obj_7pyarrow_8_compute__SplitOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2033
 * 
 * 
 * cdef class _SplitPatternOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pattern, max_splits, reverse):
 *         self.wrapped.reset(
*/
struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2077
 * 
 * 
 * cdef class _PartitionNthOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pivot, null_placement):
 *         self.wrapped.reset(new CPartitionNthOptions(
*/
struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2100
 * 
 * 
 * cdef class _WinsorizeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, lower_limit, upper_limit):
 *         self.wrapped.reset(new CWinsorizeOptions(lower_limit, upper_limit))
*/
struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2121
 * 
 * 
 * cdef class _CumulativeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, start, skip_nulls):
 *         if start is None:
*/
struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2183
 * 
 * 
 * cdef class _PairwiseOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, period):
 *         self.wrapped.reset(new CPairwiseOptions(period))
*/
struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2202
 * 
 * 
 * cdef class _ListFlattenOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, recursive):
 *         self.wrapped.reset(new CListFlattenOptions(recursive))
*/
struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2222
 * 
 * 
 * cdef class _ArraySortOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, order, null_placement):
 *         self.wrapped.reset(new CArraySortOptions(
*/
struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2274
 * 
 * 
 * cdef class _SelectKOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, k, sort_keys):
 *         self.wrapped.reset(new CSelectKOptions(k, unwrap_sort_keys(sort_keys, allow_str=False)))
*/
struct __pyx_obj_7pyarrow_8_compute__SelectKOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2300
 * 
 * 
 * cdef class _QuantileOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _interp_map = {
 *         "linear": CQuantileInterp_LINEAR,
*/
struct __pyx_obj_7pyarrow_8_compute__QuantileOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2348
 * 
 * 
 * cdef class _TDigestOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, quantiles, delta, buffer_size, skip_nulls,
 *                      min_count):
*/
struct __pyx_obj_7pyarrow_8_compute__TDigestOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2381
 * 
 * 
 * cdef class _Utf8NormalizeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _form_map = {
 *         "NFC": CUtf8NormalizeForm_NFC,
*/
struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2414
 * 
 * 
 * cdef class _RandomOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, initializer):
 *         if initializer == 'system':
*/
struct __pyx_obj_7pyarrow_8_compute__RandomOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2453
 * 
 * 
 * cdef class _RankOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 * 
 *     _tiebreaker_map = {
*/
struct __pyx_obj_7pyarrow_8_compute__RankOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2506
 * 
 * 
 * cdef class _RankQuantileOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 * 
 *     def _set_options(self, sort_keys, null_placement):
*/
struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":2537
 * 
 * 
 * cdef class _PivotWiderOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 * 
 *     def _set_options(self, key_names, unexpected_key_behavior):
*/
struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions __pyx_base;
};


/* "pyarrow/_compute.pyx":3028
 *                                  const CUdfOptions& options, CFunctionRegistry* registry)
 * 
 * cdef class RegisterUdf(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef CRegisterUdf register_func
 * 
*/
struct __pyx_obj_7pyarrow_8_compute_RegisterUdf {
  struct __pyx_obj_7pyarrow_3lib__Weakrefable __pyx_base;
  struct __pyx_vtabstruct_7pyarrow_8_compute_RegisterUdf *__pyx_vtab;
  __pyx_t_7pyarrow_8_compute_CRegisterUdf register_func;
};


/* "pyarrow/_compute.pyx":661
 * 
 * 
 * def _raise_invalid_function_option(value, description, *,             # <<<<<<<<<<<<<<
 *                                    exception_class=ValueError):
 *     raise exception_class(f"\"{value}\" is not a valid {description}")
*/
struct __pyx_defaults {
  PyObject_HEAD
  PyObject *arg0;
};



/* "pyarrow/lib.pxd":65
 * 
 * 
 * cdef class MemoryPool(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         CMemoryPool* pool
*/

struct __pyx_vtabstruct_7pyarrow_3lib_MemoryPool {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_MemoryPool *,  arrow::MemoryPool *);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_MemoryPool *__pyx_vtabptr_7pyarrow_3lib_MemoryPool;


/* "pyarrow/lib.pxd":78
 * 
 * 
 * cdef class DataType(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CDataType] sp_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_DataType {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_DataType *, std::shared_ptr< arrow::DataType>  const &);
  struct __pyx_obj_7pyarrow_3lib_Field *(*field)(struct __pyx_obj_7pyarrow_3lib_DataType *, PyObject *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_DataType *__pyx_vtabptr_7pyarrow_3lib_DataType;


/* "pyarrow/lib.pxd":88
 * 
 * 
 * cdef class ListType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CListType* list_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_ListType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_ListType *__pyx_vtabptr_7pyarrow_3lib_ListType;


/* "pyarrow/lib.pxd":93
 * 
 * 
 * cdef class LargeListType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CLargeListType* list_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_LargeListType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_LargeListType *__pyx_vtabptr_7pyarrow_3lib_LargeListType;


/* "pyarrow/lib.pxd":98
 * 
 * 
 * cdef class ListViewType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CListViewType* list_view_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_ListViewType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_ListViewType *__pyx_vtabptr_7pyarrow_3lib_ListViewType;


/* "pyarrow/lib.pxd":103
 * 
 * 
 * cdef class LargeListViewType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CLargeListViewType* list_view_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_LargeListViewType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_LargeListViewType *__pyx_vtabptr_7pyarrow_3lib_LargeListViewType;


/* "pyarrow/lib.pxd":108
 * 
 * 
 * cdef class MapType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CMapType* map_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_MapType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_MapType *__pyx_vtabptr_7pyarrow_3lib_MapType;


/* "pyarrow/lib.pxd":113
 * 
 * 
 * cdef class FixedSizeListType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CFixedSizeListType* list_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeListType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeListType *__pyx_vtabptr_7pyarrow_3lib_FixedSizeListType;


/* "pyarrow/lib.pxd":118
 * 
 * 
 * cdef class StructType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CStructType* struct_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_StructType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
  struct __pyx_obj_7pyarrow_3lib_Field *(*field_by_name)(struct __pyx_obj_7pyarrow_3lib_StructType *, PyObject *);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_StructType *__pyx_vtabptr_7pyarrow_3lib_StructType;


/* "pyarrow/lib.pxd":133
 * 
 * 
 * cdef class DictionaryType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDictionaryType* dict_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_DictionaryType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_DictionaryType *__pyx_vtabptr_7pyarrow_3lib_DictionaryType;


/* "pyarrow/lib.pxd":138
 * 
 * 
 * cdef class TimestampType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CTimestampType* ts_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_TimestampType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_TimestampType *__pyx_vtabptr_7pyarrow_3lib_TimestampType;


/* "pyarrow/lib.pxd":143
 * 
 * 
 * cdef class Time32Type(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CTime32Type* time_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Time32Type {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Time32Type *__pyx_vtabptr_7pyarrow_3lib_Time32Type;


/* "pyarrow/lib.pxd":148
 * 
 * 
 * cdef class Time64Type(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CTime64Type* time_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Time64Type {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Time64Type *__pyx_vtabptr_7pyarrow_3lib_Time64Type;


/* "pyarrow/lib.pxd":153
 * 
 * 
 * cdef class DurationType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDurationType* duration_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_DurationType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_DurationType *__pyx_vtabptr_7pyarrow_3lib_DurationType;


/* "pyarrow/lib.pxd":158
 * 
 * 
 * cdef class FixedSizeBinaryType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CFixedSizeBinaryType* fixed_size_binary_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryType *__pyx_vtabptr_7pyarrow_3lib_FixedSizeBinaryType;


/* "pyarrow/lib.pxd":163
 * 
 * 
 * cdef class Decimal32Type(FixedSizeBinaryType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDecimal32Type* decimal32_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Decimal32Type {
  struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Decimal32Type *__pyx_vtabptr_7pyarrow_3lib_Decimal32Type;


/* "pyarrow/lib.pxd":168
 * 
 * 
 * cdef class Decimal64Type(FixedSizeBinaryType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDecimal64Type* decimal64_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Decimal64Type {
  struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Decimal64Type *__pyx_vtabptr_7pyarrow_3lib_Decimal64Type;


/* "pyarrow/lib.pxd":173
 * 
 * 
 * cdef class Decimal128Type(FixedSizeBinaryType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDecimal128Type* decimal128_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Decimal128Type {
  struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Decimal128Type *__pyx_vtabptr_7pyarrow_3lib_Decimal128Type;


/* "pyarrow/lib.pxd":178
 * 
 * 
 * cdef class Decimal256Type(FixedSizeBinaryType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CDecimal256Type* decimal256_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Decimal256Type {
  struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Decimal256Type *__pyx_vtabptr_7pyarrow_3lib_Decimal256Type;


/* "pyarrow/lib.pxd":183
 * 
 * 
 * cdef class RunEndEncodedType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CRunEndEncodedType* run_end_encoded_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_RunEndEncodedType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_RunEndEncodedType *__pyx_vtabptr_7pyarrow_3lib_RunEndEncodedType;


/* "pyarrow/lib.pxd":188
 * 
 * 
 * cdef class BaseExtensionType(DataType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CExtensionType* ext_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_BaseExtensionType {
  struct __pyx_vtabstruct_7pyarrow_3lib_DataType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_BaseExtensionType *__pyx_vtabptr_7pyarrow_3lib_BaseExtensionType;


/* "pyarrow/lib.pxd":193
 * 
 * 
 * cdef class ExtensionType(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CPyExtensionType* cpy_ext_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_ExtensionType {
  struct __pyx_vtabstruct_7pyarrow_3lib_BaseExtensionType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_ExtensionType *__pyx_vtabptr_7pyarrow_3lib_ExtensionType;


/* "pyarrow/lib.pxd":198
 * 
 * 
 * cdef class FixedShapeTensorType(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CFixedShapeTensorType* tensor_ext_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_FixedShapeTensorType {
  struct __pyx_vtabstruct_7pyarrow_3lib_BaseExtensionType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_FixedShapeTensorType *__pyx_vtabptr_7pyarrow_3lib_FixedShapeTensorType;


/* "pyarrow/lib.pxd":202
 *         const CFixedShapeTensorType* tensor_ext_type
 * 
 * cdef class Bool8Type(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CBool8Type* bool8_ext_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Bool8Type {
  struct __pyx_vtabstruct_7pyarrow_3lib_BaseExtensionType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Bool8Type *__pyx_vtabptr_7pyarrow_3lib_Bool8Type;


/* "pyarrow/lib.pxd":206
 *         const CBool8Type* bool8_ext_type
 * 
 * cdef class OpaqueType(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const COpaqueType* opaque_ext_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_OpaqueType {
  struct __pyx_vtabstruct_7pyarrow_3lib_BaseExtensionType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_OpaqueType *__pyx_vtabptr_7pyarrow_3lib_OpaqueType;


/* "pyarrow/lib.pxd":210
 *         const COpaqueType* opaque_ext_type
 * 
 * cdef class UuidType(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CUuidType* uuid_ext_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_UuidType {
  struct __pyx_vtabstruct_7pyarrow_3lib_BaseExtensionType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_UuidType *__pyx_vtabptr_7pyarrow_3lib_UuidType;


/* "pyarrow/lib.pxd":214
 *         const CUuidType* uuid_ext_type
 * 
 * cdef class JsonType(BaseExtensionType):             # <<<<<<<<<<<<<<
 *     cdef:
 *         const CJsonType* json_ext_type
*/

struct __pyx_vtabstruct_7pyarrow_3lib_JsonType {
  struct __pyx_vtabstruct_7pyarrow_3lib_BaseExtensionType __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_JsonType *__pyx_vtabptr_7pyarrow_3lib_JsonType;


/* "pyarrow/lib.pxd":225
 * 
 * 
 * cdef class KeyValueMetadata(_Metadata):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[const CKeyValueMetadata] wrapped
*/

struct __pyx_vtabstruct_7pyarrow_3lib_KeyValueMetadata {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_KeyValueMetadata *, std::shared_ptr< arrow::KeyValueMetadata const >  const &);
  PyObject *(*wrap)(std::shared_ptr< arrow::KeyValueMetadata const >  const &);
  std::shared_ptr< arrow::KeyValueMetadata const >  (*unwrap)(struct __pyx_obj_7pyarrow_3lib_KeyValueMetadata *);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_KeyValueMetadata *__pyx_vtabptr_7pyarrow_3lib_KeyValueMetadata;


/* "pyarrow/lib.pxd":237
 * 
 * 
 * cdef class Field(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CField] sp_field
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Field {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_Field *, std::shared_ptr< arrow::Field>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Field *__pyx_vtabptr_7pyarrow_3lib_Field;


/* "pyarrow/lib.pxd":248
 * 
 * 
 * cdef class Schema(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CSchema] sp_schema
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Schema {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_Schema *, std::vector<std::shared_ptr< arrow::Field> >  const &);
  void (*init_schema)(struct __pyx_obj_7pyarrow_3lib_Schema *, std::shared_ptr< arrow::Schema>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Schema *__pyx_vtabptr_7pyarrow_3lib_Schema;


/* "pyarrow/lib.pxd":257
 * 
 * 
 * cdef class Scalar(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CScalar] wrapped
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Scalar {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_Scalar *, std::shared_ptr< arrow::Scalar>  const &);
  PyObject *(*wrap)(std::shared_ptr< arrow::Scalar>  const &);
  std::shared_ptr< arrow::Scalar>  (*unwrap)(struct __pyx_obj_7pyarrow_3lib_Scalar *);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Scalar *__pyx_vtabptr_7pyarrow_3lib_Scalar;


/* "pyarrow/lib.pxd":269
 * 
 * 
 * cdef class ArrayStatistics(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CArrayStatistics] sp_statistics
*/

struct __pyx_vtabstruct_7pyarrow_3lib_ArrayStatistics {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_ArrayStatistics *, std::shared_ptr< arrow::ArrayStatistics>  const &);
  PyObject *(*_get_value)(struct __pyx_obj_7pyarrow_3lib_ArrayStatistics *, std::optional< std::variant<bool, int64_t, uint64_t, double, std::string>>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_ArrayStatistics *__pyx_vtabptr_7pyarrow_3lib_ArrayStatistics;


/* "pyarrow/lib.pxd":281
 * 
 * 
 * cdef class Array(_PandasConvertible):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CArray] sp_array
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Array {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_Array *, std::shared_ptr< arrow::Array>  const &);
  PyObject *(*getitem)(struct __pyx_obj_7pyarrow_3lib_Array *, int64_t);
  int64_t (*length)(struct __pyx_obj_7pyarrow_3lib_Array *);
  void (*_assert_cpu)(struct __pyx_obj_7pyarrow_3lib_Array *);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Array *__pyx_vtabptr_7pyarrow_3lib_Array;


/* "pyarrow/lib.pxd":297
 * 
 * 
 * cdef class Tensor(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CTensor] sp_tensor
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Tensor {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_Tensor *, std::shared_ptr< arrow::Tensor>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Tensor *__pyx_vtabptr_7pyarrow_3lib_Tensor;


/* "pyarrow/lib.pxd":310
 * 
 * 
 * cdef class SparseCSRMatrix(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CSparseCSRMatrix] sp_sparse_tensor
*/

struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSRMatrix {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_SparseCSRMatrix *, std::shared_ptr< arrow::SparseCSRMatrix>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSRMatrix *__pyx_vtabptr_7pyarrow_3lib_SparseCSRMatrix;


/* "pyarrow/lib.pxd":321
 * 
 * 
 * cdef class SparseCSCMatrix(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CSparseCSCMatrix] sp_sparse_tensor
*/

struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSCMatrix {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_SparseCSCMatrix *, std::shared_ptr< arrow::SparseCSCMatrix>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSCMatrix *__pyx_vtabptr_7pyarrow_3lib_SparseCSCMatrix;


/* "pyarrow/lib.pxd":332
 * 
 * 
 * cdef class SparseCOOTensor(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CSparseCOOTensor] sp_sparse_tensor
*/

struct __pyx_vtabstruct_7pyarrow_3lib_SparseCOOTensor {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_SparseCOOTensor *, std::shared_ptr< arrow::SparseCOOTensor>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_SparseCOOTensor *__pyx_vtabptr_7pyarrow_3lib_SparseCOOTensor;


/* "pyarrow/lib.pxd":343
 * 
 * 
 * cdef class SparseCSFTensor(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CSparseCSFTensor] sp_sparse_tensor
*/

struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSFTensor {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_SparseCSFTensor *, std::shared_ptr< arrow::SparseCSFTensor>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSFTensor *__pyx_vtabptr_7pyarrow_3lib_SparseCSFTensor;


/* "pyarrow/lib.pxd":354
 * 
 * 
 * cdef class NullArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_NullArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_NullArray *__pyx_vtabptr_7pyarrow_3lib_NullArray;


/* "pyarrow/lib.pxd":358
 * 
 * 
 * cdef class BooleanArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_BooleanArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_BooleanArray *__pyx_vtabptr_7pyarrow_3lib_BooleanArray;


/* "pyarrow/lib.pxd":362
 * 
 * 
 * cdef class NumericArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_NumericArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_NumericArray *__pyx_vtabptr_7pyarrow_3lib_NumericArray;


/* "pyarrow/lib.pxd":366
 * 
 * 
 * cdef class IntegerArray(NumericArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_IntegerArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_NumericArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_IntegerArray *__pyx_vtabptr_7pyarrow_3lib_IntegerArray;


/* "pyarrow/lib.pxd":370
 * 
 * 
 * cdef class FloatingPointArray(NumericArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_FloatingPointArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_NumericArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_FloatingPointArray *__pyx_vtabptr_7pyarrow_3lib_FloatingPointArray;


/* "pyarrow/lib.pxd":374
 * 
 * 
 * cdef class Int8Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Int8Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_IntegerArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Int8Array *__pyx_vtabptr_7pyarrow_3lib_Int8Array;


/* "pyarrow/lib.pxd":378
 * 
 * 
 * cdef class UInt8Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_UInt8Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_IntegerArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_UInt8Array *__pyx_vtabptr_7pyarrow_3lib_UInt8Array;


/* "pyarrow/lib.pxd":382
 * 
 * 
 * cdef class Int16Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Int16Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_IntegerArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Int16Array *__pyx_vtabptr_7pyarrow_3lib_Int16Array;


/* "pyarrow/lib.pxd":386
 * 
 * 
 * cdef class UInt16Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_UInt16Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_IntegerArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_UInt16Array *__pyx_vtabptr_7pyarrow_3lib_UInt16Array;


/* "pyarrow/lib.pxd":390
 * 
 * 
 * cdef class Int32Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Int32Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_IntegerArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Int32Array *__pyx_vtabptr_7pyarrow_3lib_Int32Array;


/* "pyarrow/lib.pxd":394
 * 
 * 
 * cdef class UInt32Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_UInt32Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_IntegerArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_UInt32Array *__pyx_vtabptr_7pyarrow_3lib_UInt32Array;


/* "pyarrow/lib.pxd":398
 * 
 * 
 * cdef class Int64Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Int64Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_IntegerArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Int64Array *__pyx_vtabptr_7pyarrow_3lib_Int64Array;


/* "pyarrow/lib.pxd":402
 * 
 * 
 * cdef class UInt64Array(IntegerArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_UInt64Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_IntegerArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_UInt64Array *__pyx_vtabptr_7pyarrow_3lib_UInt64Array;


/* "pyarrow/lib.pxd":406
 * 
 * 
 * cdef class HalfFloatArray(FloatingPointArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_HalfFloatArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_FloatingPointArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_HalfFloatArray *__pyx_vtabptr_7pyarrow_3lib_HalfFloatArray;


/* "pyarrow/lib.pxd":410
 * 
 * 
 * cdef class FloatArray(FloatingPointArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_FloatArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_FloatingPointArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_FloatArray *__pyx_vtabptr_7pyarrow_3lib_FloatArray;


/* "pyarrow/lib.pxd":414
 * 
 * 
 * cdef class DoubleArray(FloatingPointArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_DoubleArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_FloatingPointArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_DoubleArray *__pyx_vtabptr_7pyarrow_3lib_DoubleArray;


/* "pyarrow/lib.pxd":418
 * 
 * 
 * cdef class FixedSizeBinaryArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryArray *__pyx_vtabptr_7pyarrow_3lib_FixedSizeBinaryArray;


/* "pyarrow/lib.pxd":422
 * 
 * 
 * cdef class Decimal32Array(FixedSizeBinaryArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Decimal32Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Decimal32Array *__pyx_vtabptr_7pyarrow_3lib_Decimal32Array;


/* "pyarrow/lib.pxd":426
 * 
 * 
 * cdef class Decimal64Array(FixedSizeBinaryArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Decimal64Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Decimal64Array *__pyx_vtabptr_7pyarrow_3lib_Decimal64Array;


/* "pyarrow/lib.pxd":430
 * 
 * 
 * cdef class Decimal128Array(FixedSizeBinaryArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Decimal128Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Decimal128Array *__pyx_vtabptr_7pyarrow_3lib_Decimal128Array;


/* "pyarrow/lib.pxd":434
 * 
 * 
 * cdef class Decimal256Array(FixedSizeBinaryArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Decimal256Array {
  struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Decimal256Array *__pyx_vtabptr_7pyarrow_3lib_Decimal256Array;


/* "pyarrow/lib.pxd":438
 * 
 * 
 * cdef class StructArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_StructArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_StructArray *__pyx_vtabptr_7pyarrow_3lib_StructArray;


/* "pyarrow/lib.pxd":442
 * 
 * 
 * cdef class BaseListArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_BaseListArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_BaseListArray *__pyx_vtabptr_7pyarrow_3lib_BaseListArray;


/* "pyarrow/lib.pxd":446
 * 
 * 
 * cdef class ListArray(BaseListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_ListArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_BaseListArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_ListArray *__pyx_vtabptr_7pyarrow_3lib_ListArray;


/* "pyarrow/lib.pxd":450
 * 
 * 
 * cdef class LargeListArray(BaseListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_LargeListArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_BaseListArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_LargeListArray *__pyx_vtabptr_7pyarrow_3lib_LargeListArray;


/* "pyarrow/lib.pxd":454
 * 
 * 
 * cdef class ListViewArray(BaseListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_ListViewArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_BaseListArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_ListViewArray *__pyx_vtabptr_7pyarrow_3lib_ListViewArray;


/* "pyarrow/lib.pxd":458
 * 
 * 
 * cdef class LargeListViewArray(BaseListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_LargeListViewArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_BaseListArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_LargeListViewArray *__pyx_vtabptr_7pyarrow_3lib_LargeListViewArray;


/* "pyarrow/lib.pxd":462
 * 
 * 
 * cdef class MapArray(ListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_MapArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_ListArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_MapArray *__pyx_vtabptr_7pyarrow_3lib_MapArray;


/* "pyarrow/lib.pxd":466
 * 
 * 
 * cdef class FixedSizeListArray(BaseListArray):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeListArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_BaseListArray __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeListArray *__pyx_vtabptr_7pyarrow_3lib_FixedSizeListArray;


/* "pyarrow/lib.pxd":470
 * 
 * 
 * cdef class UnionArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_UnionArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_UnionArray *__pyx_vtabptr_7pyarrow_3lib_UnionArray;


/* "pyarrow/lib.pxd":474
 * 
 * 
 * cdef class StringArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_StringArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_StringArray *__pyx_vtabptr_7pyarrow_3lib_StringArray;


/* "pyarrow/lib.pxd":478
 * 
 * 
 * cdef class BinaryArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_BinaryArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_BinaryArray *__pyx_vtabptr_7pyarrow_3lib_BinaryArray;


/* "pyarrow/lib.pxd":482
 * 
 * 
 * cdef class StringViewArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_StringViewArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_StringViewArray *__pyx_vtabptr_7pyarrow_3lib_StringViewArray;


/* "pyarrow/lib.pxd":486
 * 
 * 
 * cdef class BinaryViewArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_BinaryViewArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_BinaryViewArray *__pyx_vtabptr_7pyarrow_3lib_BinaryViewArray;


/* "pyarrow/lib.pxd":490
 * 
 * 
 * cdef class DictionaryArray(Array):             # <<<<<<<<<<<<<<
 *     cdef:
 *         object _indices, _dictionary
*/

struct __pyx_vtabstruct_7pyarrow_3lib_DictionaryArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_DictionaryArray *__pyx_vtabptr_7pyarrow_3lib_DictionaryArray;


/* "pyarrow/lib.pxd":495
 * 
 * 
 * cdef class ExtensionArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_ExtensionArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_ExtensionArray *__pyx_vtabptr_7pyarrow_3lib_ExtensionArray;


/* "pyarrow/lib.pxd":499
 * 
 * 
 * cdef class MonthDayNanoIntervalArray(Array):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_MonthDayNanoIntervalArray {
  struct __pyx_vtabstruct_7pyarrow_3lib_Array __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_MonthDayNanoIntervalArray *__pyx_vtabptr_7pyarrow_3lib_MonthDayNanoIntervalArray;


/* "pyarrow/lib.pxd":507
 * 
 * 
 * cdef class ChunkedArray(_PandasConvertible):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CChunkedArray] sp_chunked_array
*/

struct __pyx_vtabstruct_7pyarrow_3lib_ChunkedArray {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_ChunkedArray *, std::shared_ptr< arrow::ChunkedArray>  const &);
  PyObject *(*getitem)(struct __pyx_obj_7pyarrow_3lib_ChunkedArray *, int64_t);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_ChunkedArray *__pyx_vtabptr_7pyarrow_3lib_ChunkedArray;


/* "pyarrow/lib.pxd":522
 * 
 * 
 * cdef class _Tabular(_PandasConvertible):             # <<<<<<<<<<<<<<
 *     cdef void _assert_cpu(self) except *
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib__Tabular {
  void (*_assert_cpu)(struct __pyx_obj_7pyarrow_3lib__Tabular *);
};
static struct __pyx_vtabstruct_7pyarrow_3lib__Tabular *__pyx_vtabptr_7pyarrow_3lib__Tabular;


/* "pyarrow/lib.pxd":526
 * 
 * 
 * cdef class Table(_Tabular):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CTable] sp_table
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Table {
  struct __pyx_vtabstruct_7pyarrow_3lib__Tabular __pyx_base;
  void (*init)(struct __pyx_obj_7pyarrow_3lib_Table *, std::shared_ptr< arrow::Table>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Table *__pyx_vtabptr_7pyarrow_3lib_Table;


/* "pyarrow/lib.pxd":536
 * 
 * 
 * cdef class RecordBatch(_Tabular):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CRecordBatch] sp_batch
*/

struct __pyx_vtabstruct_7pyarrow_3lib_RecordBatch {
  struct __pyx_vtabstruct_7pyarrow_3lib__Tabular __pyx_base;
  void (*init)(struct __pyx_obj_7pyarrow_3lib_RecordBatch *, std::shared_ptr< arrow::RecordBatch>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_RecordBatch *__pyx_vtabptr_7pyarrow_3lib_RecordBatch;


/* "pyarrow/lib.pxd":545
 * 
 * 
 * cdef class Device(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CDevice] device
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Device {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_Device *, std::shared_ptr< arrow::Device>  const &);
  PyObject *(*wrap)(std::shared_ptr< arrow::Device>  const &);
  std::shared_ptr< arrow::Device>  (*unwrap)(struct __pyx_obj_7pyarrow_3lib_Device *);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Device *__pyx_vtabptr_7pyarrow_3lib_Device;


/* "pyarrow/lib.pxd":557
 * 
 * 
 * cdef class MemoryManager(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CMemoryManager] memory_manager
*/

struct __pyx_vtabstruct_7pyarrow_3lib_MemoryManager {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_MemoryManager *, std::shared_ptr< arrow::MemoryManager>  const &);
  PyObject *(*wrap)(std::shared_ptr< arrow::MemoryManager>  const &);
  std::shared_ptr< arrow::MemoryManager>  (*unwrap)(struct __pyx_obj_7pyarrow_3lib_MemoryManager *);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_MemoryManager *__pyx_vtabptr_7pyarrow_3lib_MemoryManager;


/* "pyarrow/lib.pxd":569
 * 
 * 
 * cdef class Buffer(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CBuffer] buffer
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Buffer {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_Buffer *, std::shared_ptr< arrow::Buffer>  const &);
  PyObject *(*getitem)(struct __pyx_obj_7pyarrow_3lib_Buffer *, int64_t);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Buffer *__pyx_vtabptr_7pyarrow_3lib_Buffer;


/* "pyarrow/lib.pxd":579
 * 
 * 
 * cdef class ResizableBuffer(Buffer):             # <<<<<<<<<<<<<<
 * 
 *     cdef void init_rz(self, const shared_ptr[CResizableBuffer]& buffer)
*/

struct __pyx_vtabstruct_7pyarrow_3lib_ResizableBuffer {
  struct __pyx_vtabstruct_7pyarrow_3lib_Buffer __pyx_base;
  void (*init_rz)(struct __pyx_obj_7pyarrow_3lib_ResizableBuffer *, std::shared_ptr< arrow::ResizableBuffer>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_ResizableBuffer *__pyx_vtabptr_7pyarrow_3lib_ResizableBuffer;


/* "pyarrow/lib.pxd":584
 * 
 * 
 * cdef class NativeFile(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CInputStream] input_stream
*/

struct __pyx_vtabstruct_7pyarrow_3lib_NativeFile {
  PyObject *(*set_random_access_file)(struct __pyx_obj_7pyarrow_3lib_NativeFile *, std::shared_ptr< arrow::io::RandomAccessFile> );
  PyObject *(*set_input_stream)(struct __pyx_obj_7pyarrow_3lib_NativeFile *, std::shared_ptr< arrow::io::InputStream> );
  PyObject *(*set_output_stream)(struct __pyx_obj_7pyarrow_3lib_NativeFile *, std::shared_ptr< arrow::io::OutputStream> );
  std::shared_ptr< arrow::io::RandomAccessFile>  (*get_random_access_file)(struct __pyx_obj_7pyarrow_3lib_NativeFile *);
  std::shared_ptr< arrow::io::InputStream>  (*get_input_stream)(struct __pyx_obj_7pyarrow_3lib_NativeFile *);
  std::shared_ptr< arrow::io::OutputStream>  (*get_output_stream)(struct __pyx_obj_7pyarrow_3lib_NativeFile *);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_NativeFile *__pyx_vtabptr_7pyarrow_3lib_NativeFile;


/* "pyarrow/lib.pxd":608
 * 
 * 
 * cdef class BufferedInputStream(NativeFile):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_BufferedInputStream {
  struct __pyx_vtabstruct_7pyarrow_3lib_NativeFile __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_BufferedInputStream *__pyx_vtabptr_7pyarrow_3lib_BufferedInputStream;


/* "pyarrow/lib.pxd":612
 * 
 * 
 * cdef class BufferedOutputStream(NativeFile):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_BufferedOutputStream {
  struct __pyx_vtabstruct_7pyarrow_3lib_NativeFile __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_BufferedOutputStream *__pyx_vtabptr_7pyarrow_3lib_BufferedOutputStream;


/* "pyarrow/lib.pxd":616
 * 
 * 
 * cdef class CompressedInputStream(NativeFile):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_CompressedInputStream {
  struct __pyx_vtabstruct_7pyarrow_3lib_NativeFile __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_CompressedInputStream *__pyx_vtabptr_7pyarrow_3lib_CompressedInputStream;


/* "pyarrow/lib.pxd":620
 * 
 * 
 * cdef class CompressedOutputStream(NativeFile):             # <<<<<<<<<<<<<<
 *     pass
 * 
*/

struct __pyx_vtabstruct_7pyarrow_3lib_CompressedOutputStream {
  struct __pyx_vtabstruct_7pyarrow_3lib_NativeFile __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_3lib_CompressedOutputStream *__pyx_vtabptr_7pyarrow_3lib_CompressedOutputStream;


/* "pyarrow/lib.pxd":634
 * 
 * 
 * cdef class CacheOptions(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         CCacheOptions wrapped
*/

struct __pyx_vtabstruct_7pyarrow_3lib_CacheOptions {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_CacheOptions *, arrow::io::CacheOptions);
  arrow::io::CacheOptions (*unwrap)(struct __pyx_obj_7pyarrow_3lib_CacheOptions *);
  PyObject *(*wrap)(arrow::io::CacheOptions const );
};
static struct __pyx_vtabstruct_7pyarrow_3lib_CacheOptions *__pyx_vtabptr_7pyarrow_3lib_CacheOptions;


/* "pyarrow/lib.pxd":646
 * 
 * 
 * cdef class Codec(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[CCodec] wrapped
*/

struct __pyx_vtabstruct_7pyarrow_3lib_Codec {
   arrow::util::Codec *(*unwrap)(struct __pyx_obj_7pyarrow_3lib_Codec *);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_Codec *__pyx_vtabptr_7pyarrow_3lib_Codec;


/* "pyarrow/lib.pxd":654
 * 
 * # This class is only used internally for now
 * cdef class StopToken:             # <<<<<<<<<<<<<<
 *     cdef:
 *         CStopToken stop_token
*/

struct __pyx_vtabstruct_7pyarrow_3lib_StopToken {
  void (*init)(struct __pyx_obj_7pyarrow_3lib_StopToken *, arrow::StopToken);
};
static struct __pyx_vtabstruct_7pyarrow_3lib_StopToken *__pyx_vtabptr_7pyarrow_3lib_StopToken;


/* "pyarrow/_compute.pyx":2942
 * 
 * 
 * cdef class UdfContext:             # <<<<<<<<<<<<<<
 *     """
 *     Per-invocation function context/state.
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_UdfContext {
  void (*init)(struct __pyx_obj_7pyarrow_8_compute_UdfContext *,  arrow::py::UdfContext const &);
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_UdfContext *__pyx_vtabptr_7pyarrow_8_compute_UdfContext;


/* "pyarrow/_compute.pyx":608
 * 
 * 
 * cdef class FunctionOptions(_Weakrefable):             # <<<<<<<<<<<<<<
 *     __slots__ = ()  # avoid mistakingly creating attributes
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions {
   arrow::compute::FunctionOptions const *(*get_options)(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *);
  void (*init)(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *, std::shared_ptr< arrow::compute::FunctionOptions>  const &);
  std::shared_ptr< arrow::compute::FunctionOptions>  (*unwrap)(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *);
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
static CYTHON_INLINE std::shared_ptr< arrow::compute::FunctionOptions>  __pyx_f_7pyarrow_8_compute_15FunctionOptions_unwrap(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *);


/* "pyarrow/_compute.pyx":2246
 * 
 * 
 * cdef class _SortOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, sort_keys, null_placement):
 *         self.wrapped.reset(new CSortOptions(
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__SortOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__SortOptions *__pyx_vtabptr_7pyarrow_8_compute__SortOptions;


/* "pyarrow/_compute.pyx":2581
 * 
 * 
 * cdef class Expression(_Weakrefable):             # <<<<<<<<<<<<<<
 *     """
 *     A logical expression to be evaluated against some input.
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_Expression {
  void (*init)(struct __pyx_obj_7pyarrow_8_compute_Expression *, arrow::compute::Expression const &);
  PyObject *(*wrap)(arrow::compute::Expression const &);
  arrow::compute::Expression (*unwrap)(struct __pyx_obj_7pyarrow_8_compute_Expression *);
  struct __pyx_obj_7pyarrow_8_compute_Expression *(*_expr_or_scalar)(PyObject *);
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_Expression *__pyx_vtabptr_7pyarrow_8_compute_Expression;
static CYTHON_INLINE arrow::compute::Expression __pyx_f_7pyarrow_8_compute_10Expression_unwrap(struct __pyx_obj_7pyarrow_8_compute_Expression *);


/* "pyarrow/_compute.pyx":207
 * 
 * 
 * cdef class ScalarKernel(Kernel):             # <<<<<<<<<<<<<<
 *     cdef const CScalarKernel* kernel
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarKernel {
  void (*init)(struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *,  arrow::compute::ScalarKernel const *);
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarKernel *__pyx_vtabptr_7pyarrow_8_compute_ScalarKernel;


/* "pyarrow/_compute.pyx":217
 * 
 * 
 * cdef class VectorKernel(Kernel):             # <<<<<<<<<<<<<<
 *     cdef const CVectorKernel* kernel
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_VectorKernel {
  void (*init)(struct __pyx_obj_7pyarrow_8_compute_VectorKernel *,  arrow::compute::VectorKernel const *);
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_VectorKernel *__pyx_vtabptr_7pyarrow_8_compute_VectorKernel;


/* "pyarrow/_compute.pyx":227
 * 
 * 
 * cdef class ScalarAggregateKernel(Kernel):             # <<<<<<<<<<<<<<
 *     cdef const CScalarAggregateKernel* kernel
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarAggregateKernel {
  void (*init)(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *,  arrow::compute::ScalarAggregateKernel const *);
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarAggregateKernel *__pyx_vtabptr_7pyarrow_8_compute_ScalarAggregateKernel;


/* "pyarrow/_compute.pyx":237
 * 
 * 
 * cdef class HashAggregateKernel(Kernel):             # <<<<<<<<<<<<<<
 *     cdef const CHashAggregateKernel* kernel
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_HashAggregateKernel {
  void (*init)(struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *,  arrow::compute::HashAggregateKernel const *);
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_HashAggregateKernel *__pyx_vtabptr_7pyarrow_8_compute_HashAggregateKernel;


/* "pyarrow/_compute.pyx":253
 * 
 * 
 * cdef class Function(_Weakrefable):             # <<<<<<<<<<<<<<
 *     """
 *     A compute function.
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_Function {
  void (*init)(struct __pyx_obj_7pyarrow_8_compute_Function *, std::shared_ptr< arrow::compute::Function>  const &);
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_Function *__pyx_vtabptr_7pyarrow_8_compute_Function;


/* "pyarrow/_compute.pyx":407
 * 
 * 
 * cdef class ScalarFunction(Function):             # <<<<<<<<<<<<<<
 *     cdef const CScalarFunction* func
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarFunction {
  struct __pyx_vtabstruct_7pyarrow_8_compute_Function __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarFunction *__pyx_vtabptr_7pyarrow_8_compute_ScalarFunction;


/* "pyarrow/_compute.pyx":423
 * 
 * 
 * cdef class VectorFunction(Function):             # <<<<<<<<<<<<<<
 *     cdef const CVectorFunction* func
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_VectorFunction {
  struct __pyx_vtabstruct_7pyarrow_8_compute_Function __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_VectorFunction *__pyx_vtabptr_7pyarrow_8_compute_VectorFunction;


/* "pyarrow/_compute.pyx":439
 * 
 * 
 * cdef class ScalarAggregateFunction(Function):             # <<<<<<<<<<<<<<
 *     cdef const CScalarAggregateFunction* func
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarAggregateFunction {
  struct __pyx_vtabstruct_7pyarrow_8_compute_Function __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarAggregateFunction *__pyx_vtabptr_7pyarrow_8_compute_ScalarAggregateFunction;


/* "pyarrow/_compute.pyx":456
 * 
 * 
 * cdef class HashAggregateFunction(Function):             # <<<<<<<<<<<<<<
 *     cdef const CHashAggregateFunction* func
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_HashAggregateFunction {
  struct __pyx_vtabstruct_7pyarrow_8_compute_Function __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_HashAggregateFunction *__pyx_vtabptr_7pyarrow_8_compute_HashAggregateFunction;


/* "pyarrow/_compute.pyx":472
 * 
 * 
 * cdef class MetaFunction(Function):             # <<<<<<<<<<<<<<
 *     cdef const CMetaFunction* func
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_MetaFunction {
  struct __pyx_vtabstruct_7pyarrow_8_compute_Function __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_MetaFunction *__pyx_vtabptr_7pyarrow_8_compute_MetaFunction;


/* "pyarrow/_compute.pyx":674
 * # 2. a Python derived class that implements the constructor
 * 
 * cdef class _CastOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     cdef CCastOptions* options
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__CastOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__CastOptions *__pyx_vtabptr_7pyarrow_8_compute__CastOptions;


/* "pyarrow/_compute.pyx":849
 * 
 * 
 * cdef class _ElementWiseAggregateOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, skip_nulls):
 *         self.wrapped.reset(new CElementWiseAggregateOptions(skip_nulls))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ElementWiseAggregateOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ElementWiseAggregateOptions *__pyx_vtabptr_7pyarrow_8_compute__ElementWiseAggregateOptions;


/* "pyarrow/_compute.pyx":891
 * 
 * 
 * cdef class _RoundOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, ndigits, round_mode):
 *         self.wrapped.reset(
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__RoundOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__RoundOptions *__pyx_vtabptr_7pyarrow_8_compute__RoundOptions;


/* "pyarrow/_compute.pyx":917
 * 
 * 
 * cdef class _RoundBinaryOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, round_mode):
 *         self.wrapped.reset(
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__RoundBinaryOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__RoundBinaryOptions *__pyx_vtabptr_7pyarrow_8_compute__RoundBinaryOptions;


/* "pyarrow/_compute.pyx":967
 * 
 * 
 * cdef class _RoundTemporalOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, multiple, unit, week_starts_monday,
 *                      ceil_is_strictly_greater, calendar_based_origin):
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__RoundTemporalOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__RoundTemporalOptions *__pyx_vtabptr_7pyarrow_8_compute__RoundTemporalOptions;


/* "pyarrow/_compute.pyx":1030
 * 
 * 
 * cdef class _RoundToMultipleOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, multiple, round_mode):
 *         if not isinstance(multiple, Scalar):
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__RoundToMultipleOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__RoundToMultipleOptions *__pyx_vtabptr_7pyarrow_8_compute__RoundToMultipleOptions;


/* "pyarrow/_compute.pyx":1066
 * 
 * 
 * cdef class _JoinOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _null_handling_map = {
 *         "emit_null": CJoinNullHandlingBehavior_EMIT_NULL,
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__JoinOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__JoinOptions *__pyx_vtabptr_7pyarrow_8_compute__JoinOptions;


/* "pyarrow/_compute.pyx":1101
 * 
 * 
 * cdef class _MatchSubstringOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pattern, ignore_case):
 *         self.wrapped.reset(
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__MatchSubstringOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__MatchSubstringOptions *__pyx_vtabptr_7pyarrow_8_compute__MatchSubstringOptions;


/* "pyarrow/_compute.pyx":1124
 * 
 * 
 * cdef class _PadOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, width, padding, lean_left_on_odd_padding):
 *         self.wrapped.reset(new CPadOptions(width, tobytes(padding), lean_left_on_odd_padding))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__PadOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__PadOptions *__pyx_vtabptr_7pyarrow_8_compute__PadOptions;


/* "pyarrow/_compute.pyx":1149
 * 
 * 
 * cdef class _ZeroFillOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, width, padding):
 *         self.wrapped.reset(new CZeroFillOptions(width, tobytes(padding)))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ZeroFillOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ZeroFillOptions *__pyx_vtabptr_7pyarrow_8_compute__ZeroFillOptions;


/* "pyarrow/_compute.pyx":1179
 * 
 * 
 * cdef class _TrimOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, characters):
 *         self.wrapped.reset(new CTrimOptions(tobytes(characters)))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__TrimOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__TrimOptions *__pyx_vtabptr_7pyarrow_8_compute__TrimOptions;


/* "pyarrow/_compute.pyx":1198
 * 
 * 
 * cdef class _ReplaceSubstringOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pattern, replacement, max_replacements):
 *         self.wrapped.reset(
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ReplaceSubstringOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ReplaceSubstringOptions *__pyx_vtabptr_7pyarrow_8_compute__ReplaceSubstringOptions;


/* "pyarrow/_compute.pyx":1228
 * 
 * 
 * cdef class _ExtractRegexOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pattern):
 *         self.wrapped.reset(new CExtractRegexOptions(tobytes(pattern)))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ExtractRegexOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ExtractRegexOptions *__pyx_vtabptr_7pyarrow_8_compute__ExtractRegexOptions;


/* "pyarrow/_compute.pyx":1247
 * 
 * 
 * cdef class _ExtractRegexSpanOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pattern):
 *         self.wrapped.reset(new CExtractRegexSpanOptions(tobytes(pattern)))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ExtractRegexSpanOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ExtractRegexSpanOptions *__pyx_vtabptr_7pyarrow_8_compute__ExtractRegexSpanOptions;


/* "pyarrow/_compute.pyx":1266
 * 
 * 
 * cdef class _SliceOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, start, stop, step):
 *         self.wrapped.reset(new CSliceOptions(start, stop, step))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__SliceOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__SliceOptions *__pyx_vtabptr_7pyarrow_8_compute__SliceOptions;


/* "pyarrow/_compute.pyx":1294
 * 
 * 
 * cdef class _ListSliceOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     cpdef _set_options(self, start, stop=None, step=1, return_fixed_size_list=None):
 *         cdef:
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ListSliceOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
  PyObject *(*_set_options)(struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_7pyarrow_8_compute_17_ListSliceOptions__set_options *__pyx_optional_args);
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ListSliceOptions *__pyx_vtabptr_7pyarrow_8_compute__ListSliceOptions;


/* "pyarrow/_compute.pyx":1333
 * 
 * 
 * cdef class _ReplaceSliceOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, start, stop, replacement):
 *         self.wrapped.reset(
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ReplaceSliceOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ReplaceSliceOptions *__pyx_vtabptr_7pyarrow_8_compute__ReplaceSliceOptions;


/* "pyarrow/_compute.pyx":1358
 * 
 * 
 * cdef class _FilterOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _null_selection_map = {
 *         "drop": CFilterNullSelectionBehavior_DROP,
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__FilterOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__FilterOptions *__pyx_vtabptr_7pyarrow_8_compute__FilterOptions;


/* "pyarrow/_compute.pyx":1391
 * 
 * 
 * cdef class _DictionaryEncodeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _null_encoding_map = {
 *         "encode": CDictionaryEncodeNullEncodingBehavior_ENCODE,
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__DictionaryEncodeOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__DictionaryEncodeOptions *__pyx_vtabptr_7pyarrow_8_compute__DictionaryEncodeOptions;


/* "pyarrow/_compute.pyx":1425
 * 
 * 
 * cdef class _RunEndEncodeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, run_end_type):
 *         run_end_ty = ensure_type(run_end_type)
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__RunEndEncodeOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__RunEndEncodeOptions *__pyx_vtabptr_7pyarrow_8_compute__RunEndEncodeOptions;


/* "pyarrow/_compute.pyx":1447
 * 
 * 
 * cdef class _InversePermutationOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, max_index=-1, output_type=None):
 *         cdef optional[shared_ptr[CDataType]] c_output_type = nullopt
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__InversePermutationOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__InversePermutationOptions *__pyx_vtabptr_7pyarrow_8_compute__InversePermutationOptions;


/* "pyarrow/_compute.pyx":1479
 * 
 * 
 * cdef class _ScatterOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, max_index):
 *         self.wrapped.reset(new CScatterOptions(max_index))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ScatterOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ScatterOptions *__pyx_vtabptr_7pyarrow_8_compute__ScatterOptions;


/* "pyarrow/_compute.pyx":1501
 * 
 * 
 * cdef class _TakeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, boundscheck):
 *         self.wrapped.reset(new CTakeOptions(boundscheck))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__TakeOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__TakeOptions *__pyx_vtabptr_7pyarrow_8_compute__TakeOptions;


/* "pyarrow/_compute.pyx":1522
 * 
 * 
 * cdef class _MakeStructOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, field_names, field_nullability, field_metadata):
 *         cdef:
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__MakeStructOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__MakeStructOptions *__pyx_vtabptr_7pyarrow_8_compute__MakeStructOptions;


/* "pyarrow/_compute.pyx":1588
 * 
 * 
 * cdef class _StructFieldOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, indices):
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__StructFieldOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__StructFieldOptions *__pyx_vtabptr_7pyarrow_8_compute__StructFieldOptions;


/* "pyarrow/_compute.pyx":1616
 * 
 * 
 * cdef class _ScalarAggregateOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, skip_nulls, min_count):
 *         self.wrapped.reset(new CScalarAggregateOptions(skip_nulls, min_count))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ScalarAggregateOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ScalarAggregateOptions *__pyx_vtabptr_7pyarrow_8_compute__ScalarAggregateOptions;


/* "pyarrow/_compute.pyx":1635
 * 
 * 
 * cdef class _CountOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _mode_map = {
 *         "only_valid": CCountMode_ONLY_VALID,
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__CountOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__CountOptions *__pyx_vtabptr_7pyarrow_8_compute__CountOptions;


/* "pyarrow/_compute.pyx":1664
 * 
 * 
 * cdef class _IndexOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, scalar):
 *         self.wrapped.reset(new CIndexOptions(pyarrow_unwrap_scalar(scalar)))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__IndexOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__IndexOptions *__pyx_vtabptr_7pyarrow_8_compute__IndexOptions;


/* "pyarrow/_compute.pyx":1683
 * 
 * 
 * cdef class _MapLookupOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _occurrence_map = {
 *         "all": CMapLookupOccurrence_ALL,
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__MapLookupOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__MapLookupOptions *__pyx_vtabptr_7pyarrow_8_compute__MapLookupOptions;


/* "pyarrow/_compute.pyx":1723
 * 
 * 
 * cdef class _ModeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, n, skip_nulls, min_count):
 *         self.wrapped.reset(new CModeOptions(n, skip_nulls, min_count))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ModeOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ModeOptions *__pyx_vtabptr_7pyarrow_8_compute__ModeOptions;


/* "pyarrow/_compute.pyx":1744
 * 
 * 
 * cdef class _SetLookupOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, value_set, c_bool skip_nulls):
 *         cdef unique_ptr[CDatum] valset
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__SetLookupOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__SetLookupOptions *__pyx_vtabptr_7pyarrow_8_compute__SetLookupOptions;


/* "pyarrow/_compute.pyx":1780
 * 
 * 
 * cdef class _StrptimeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _unit_map = {
 *         "s": TimeUnit_SECOND,
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__StrptimeOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__StrptimeOptions *__pyx_vtabptr_7pyarrow_8_compute__StrptimeOptions;


/* "pyarrow/_compute.pyx":1820
 * 
 * 
 * cdef class _StrftimeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, format, locale):
 *         self.wrapped.reset(
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__StrftimeOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__StrftimeOptions *__pyx_vtabptr_7pyarrow_8_compute__StrftimeOptions;


/* "pyarrow/_compute.pyx":1843
 * 
 * 
 * cdef class _DayOfWeekOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, count_from_zero, week_start):
 *         self.wrapped.reset(
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__DayOfWeekOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__DayOfWeekOptions *__pyx_vtabptr_7pyarrow_8_compute__DayOfWeekOptions;


/* "pyarrow/_compute.pyx":1867
 * 
 * 
 * cdef class _WeekOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, week_starts_monday, count_from_zero,
 *                      first_week_is_fully_in_year):
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__WeekOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__WeekOptions *__pyx_vtabptr_7pyarrow_8_compute__WeekOptions;


/* "pyarrow/_compute.pyx":1901
 * 
 * 
 * cdef class _AssumeTimezoneOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _ambiguous_map = {
 *         "raise": CAssumeTimezoneAmbiguous_AMBIGUOUS_RAISE,
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__AssumeTimezoneOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__AssumeTimezoneOptions *__pyx_vtabptr_7pyarrow_8_compute__AssumeTimezoneOptions;


/* "pyarrow/_compute.pyx":1947
 * 
 * 
 * cdef class _NullOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, nan_is_null):
 *         self.wrapped.reset(new CNullOptions(nan_is_null))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__NullOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__NullOptions *__pyx_vtabptr_7pyarrow_8_compute__NullOptions;


/* "pyarrow/_compute.pyx":1966
 * 
 * 
 * cdef class _VarianceOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, ddof, skip_nulls, min_count):
 *         self.wrapped.reset(new CVarianceOptions(ddof, skip_nulls, min_count))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__VarianceOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__VarianceOptions *__pyx_vtabptr_7pyarrow_8_compute__VarianceOptions;


/* "pyarrow/_compute.pyx":1987
 * 
 * 
 * cdef class _SkewOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, skip_nulls, biased, min_count):
 *         self.wrapped.reset(new CSkewOptions(skip_nulls, biased, min_count))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__SkewOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__SkewOptions *__pyx_vtabptr_7pyarrow_8_compute__SkewOptions;


/* "pyarrow/_compute.pyx":2009
 * 
 * 
 * cdef class _SplitOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, max_splits, reverse):
 *         self.wrapped.reset(new CSplitOptions(max_splits, reverse))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__SplitOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__SplitOptions *__pyx_vtabptr_7pyarrow_8_compute__SplitOptions;


/* "pyarrow/_compute.pyx":2033
 * 
 * 
 * cdef class _SplitPatternOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pattern, max_splits, reverse):
 *         self.wrapped.reset(
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__SplitPatternOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__SplitPatternOptions *__pyx_vtabptr_7pyarrow_8_compute__SplitPatternOptions;


/* "pyarrow/_compute.pyx":2077
 * 
 * 
 * cdef class _PartitionNthOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, pivot, null_placement):
 *         self.wrapped.reset(new CPartitionNthOptions(
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__PartitionNthOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__PartitionNthOptions *__pyx_vtabptr_7pyarrow_8_compute__PartitionNthOptions;


/* "pyarrow/_compute.pyx":2100
 * 
 * 
 * cdef class _WinsorizeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, lower_limit, upper_limit):
 *         self.wrapped.reset(new CWinsorizeOptions(lower_limit, upper_limit))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__WinsorizeOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__WinsorizeOptions *__pyx_vtabptr_7pyarrow_8_compute__WinsorizeOptions;


/* "pyarrow/_compute.pyx":2121
 * 
 * 
 * cdef class _CumulativeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, start, skip_nulls):
 *         if start is None:
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__CumulativeOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__CumulativeOptions *__pyx_vtabptr_7pyarrow_8_compute__CumulativeOptions;


/* "pyarrow/_compute.pyx":2183
 * 
 * 
 * cdef class _PairwiseOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, period):
 *         self.wrapped.reset(new CPairwiseOptions(period))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__PairwiseOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__PairwiseOptions *__pyx_vtabptr_7pyarrow_8_compute__PairwiseOptions;


/* "pyarrow/_compute.pyx":2202
 * 
 * 
 * cdef class _ListFlattenOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, recursive):
 *         self.wrapped.reset(new CListFlattenOptions(recursive))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ListFlattenOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ListFlattenOptions *__pyx_vtabptr_7pyarrow_8_compute__ListFlattenOptions;


/* "pyarrow/_compute.pyx":2222
 * 
 * 
 * cdef class _ArraySortOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, order, null_placement):
 *         self.wrapped.reset(new CArraySortOptions(
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__ArraySortOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__ArraySortOptions *__pyx_vtabptr_7pyarrow_8_compute__ArraySortOptions;


/* "pyarrow/_compute.pyx":2274
 * 
 * 
 * cdef class _SelectKOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, k, sort_keys):
 *         self.wrapped.reset(new CSelectKOptions(k, unwrap_sort_keys(sort_keys, allow_str=False)))
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__SelectKOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__SelectKOptions *__pyx_vtabptr_7pyarrow_8_compute__SelectKOptions;


/* "pyarrow/_compute.pyx":2300
 * 
 * 
 * cdef class _QuantileOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _interp_map = {
 *         "linear": CQuantileInterp_LINEAR,
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__QuantileOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__QuantileOptions *__pyx_vtabptr_7pyarrow_8_compute__QuantileOptions;


/* "pyarrow/_compute.pyx":2348
 * 
 * 
 * cdef class _TDigestOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, quantiles, delta, buffer_size, skip_nulls,
 *                      min_count):
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__TDigestOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__TDigestOptions *__pyx_vtabptr_7pyarrow_8_compute__TDigestOptions;


/* "pyarrow/_compute.pyx":2381
 * 
 * 
 * cdef class _Utf8NormalizeOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     _form_map = {
 *         "NFC": CUtf8NormalizeForm_NFC,
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__Utf8NormalizeOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__Utf8NormalizeOptions *__pyx_vtabptr_7pyarrow_8_compute__Utf8NormalizeOptions;


/* "pyarrow/_compute.pyx":2414
 * 
 * 
 * cdef class _RandomOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 *     def _set_options(self, initializer):
 *         if initializer == 'system':
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__RandomOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__RandomOptions *__pyx_vtabptr_7pyarrow_8_compute__RandomOptions;


/* "pyarrow/_compute.pyx":2453
 * 
 * 
 * cdef class _RankOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 * 
 *     _tiebreaker_map = {
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__RankOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__RankOptions *__pyx_vtabptr_7pyarrow_8_compute__RankOptions;


/* "pyarrow/_compute.pyx":2506
 * 
 * 
 * cdef class _RankQuantileOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 * 
 *     def _set_options(self, sort_keys, null_placement):
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__RankQuantileOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__RankQuantileOptions *__pyx_vtabptr_7pyarrow_8_compute__RankQuantileOptions;


/* "pyarrow/_compute.pyx":2537
 * 
 * 
 * cdef class _PivotWiderOptions(FunctionOptions):             # <<<<<<<<<<<<<<
 * 
 *     def _set_options(self, key_names, unexpected_key_behavior):
*/

struct __pyx_vtabstruct_7pyarrow_8_compute__PivotWiderOptions {
  struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_base;
};
static struct __pyx_vtabstruct_7pyarrow_8_compute__PivotWiderOptions *__pyx_vtabptr_7pyarrow_8_compute__PivotWiderOptions;


/* "pyarrow/_compute.pyx":3028
 *                                  const CUdfOptions& options, CFunctionRegistry* registry)
 * 
 * cdef class RegisterUdf(_Weakrefable):             # <<<<<<<<<<<<<<
 *     cdef CRegisterUdf register_func
 * 
*/

struct __pyx_vtabstruct_7pyarrow_8_compute_RegisterUdf {
  void (*init)(struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *, __pyx_t_7pyarrow_8_compute_CRegisterUdf const );
};
static struct __pyx_vtabstruct_7pyarrow_8_compute_RegisterUdf *__pyx_vtabptr_7pyarrow_8_compute_RegisterUdf;
/* #### Code section: utility_code_proto ### */

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, Py_ssize_t);
    void (*DECREF)(void*, PyObject*, Py_ssize_t);
    void (*GOTREF)(void*, PyObject*, Py_ssize_t);
    void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
    void* (*SetupContext)(const char*, Py_ssize_t, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
          }
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
  #define __Pyx_XINCREF(r)  do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContextNogil()
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_Py_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; Py_XDECREF(tmp);\
    } while (0)
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyErrExceptionMatches.proto (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* PyThreadStateGet.proto (used by PyErrFetchRestore) */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#if PY_VERSION_HEX >= 0x030C00A6
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->current_exception != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
#else
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->curexc_type != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->curexc_type)
#endif
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  (PyErr_Occurred() != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  PyErr_Occurred()
#endif

/* PyErrFetchRestore.proto (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* PyObjectGetAttrStr.proto (used by PyObjectGetAttrStrNoError) */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* PyObjectGetAttrStrNoError.proto (used by GetBuiltinName) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* ExtTypeTest.proto */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);

/* TupleAndListFromArray.proto (used by fastcall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
#endif
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
#endif

/* IncludeStringH.proto (used by BytesEquals) */
#include <string.h>

/* BytesEquals.proto (used by UnicodeEquals) */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto (used by fastcall) */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* fastcall.proto */
#if CYTHON_AVOID_BORROWED_REFS
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_PySequence_ITEM(args, i)
#elif CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(args, i))
#else
    #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_XNewRef(PyTuple_GetItem(args, i))
#endif
#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
#define __Pyx_KwValues_VARARGS(args, nargs) NULL
#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
#if CYTHON_METH_FASTCALL
    #define __Pyx_ArgRef_FASTCALL(args, i) __Pyx_NewRef(args[i])
    #define __Pyx_NumKwargs_FASTCALL(kwds) __Pyx_PyTuple_GET_SIZE(kwds)
    #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
    static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
    CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
  #else
    #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
  #endif
#else
    #define __Pyx_ArgRef_FASTCALL __Pyx_ArgRef_VARARGS
    #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
    #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
    #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
    #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
#endif
#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
#if CYTHON_METH_FASTCALL || (CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(args + start, stop - start)
#else
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop)
#endif

/* PyDictVersioning.proto (used by GetModuleGlobalName) */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __Pyx_XNewRef(__pyx_dict_cached_value);\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  do {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_mstate_global->__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  do {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
} while(0)
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* HasAttr.proto (used by ImportImpl) */
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_HasAttr(o, n)  PyObject_HasAttrWithError(o, n)
#else
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
#endif

/* PyObjectCall.proto (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCallMethO.proto (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectFastCall.proto (used by PyObjectCallOneArg) */
#define __Pyx_PyObject_FastCall(func, args, nargs)  __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs);

/* PyObjectCallOneArg.proto (used by ImportImpl) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* ImportImpl.export */
static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level);

/* Import.proto */
static CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level);

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* GetTopmostException.proto (used by SaveResetException) */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* PyImportError_Check.proto */
#define __Pyx_PyExc_ImportError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_ImportError)

/* GetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* RaiseException.export */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* py_dict_items.proto (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d);

/* CallCFunction.proto (used by CallUnboundCMethod0) */
#define __Pyx_CallCFunction(cfunc, self, args)\
    ((PyCFunction)(void(*)(void))(cfunc)->func)(self, args)
#define __Pyx_CallCFunctionWithKeywords(cfunc, self, args, kwargs)\
    ((PyCFunctionWithKeywords)(void(*)(void))(cfunc)->func)(self, args, kwargs)
#define __Pyx_CallCFunctionFast(cfunc, self, args, nargs)\
    ((__Pyx_PyCFunctionFast)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs)
#define __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, nargs, kwnames)\
    ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs, kwnames)

/* UnpackUnboundCMethod.proto (used by CallUnboundCMethod0) */
typedef struct {
    PyObject *type;
    PyObject **method_name;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && CYTHON_ATOMICS
    __pyx_atomic_int_type initialized;
#endif
    PyCFunction func;
    PyObject *method;
    int flag;
} __Pyx_CachedCFunction;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
static CYTHON_INLINE int __Pyx_CachedCFunction_GetAndSetInitializing(__Pyx_CachedCFunction *cfunc) {
#if !CYTHON_ATOMICS
    return 1;
#else
    __pyx_nonatomic_int_type expected = 0;
    if (__pyx_atomic_int_cmp_exchange(&cfunc->initialized, &expected, 1)) {
        return 0;
    }
    return expected;
#endif
}
static CYTHON_INLINE void __Pyx_CachedCFunction_SetFinishedInitializing(__Pyx_CachedCFunction *cfunc) {
#if CYTHON_ATOMICS
    __pyx_atomic_store(&cfunc->initialized, 2);
#endif
}
#else
#define __Pyx_CachedCFunction_GetAndSetInitializing(cfunc) 2
#define __Pyx_CachedCFunction_SetFinishedInitializing(cfunc)
#endif

/* CallUnboundCMethod0.proto */
CYTHON_UNUSED
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#else
#define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
#endif

/* py_dict_values.proto (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);

/* OwnedDictNext.proto (used by ParseKeywordsImpl) */
#if CYTHON_AVOID_BORROWED_REFS
static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue);
#else
CYTHON_INLINE
static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue);
#endif

/* RaiseDoubleKeywords.proto (used by ParseKeywordsImpl) */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywordsImpl.export */
static int __Pyx_ParseKeywordsTuple(
    PyObject *kwds,
    PyObject * const *kwvalues,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs
);
static int __Pyx_ParseKeywordDictToDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name
);
static int __Pyx_ParseKeywordDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs
);

/* CallUnboundCMethod2.proto */
CYTHON_UNUSED
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);
#else
#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2)  __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
#endif

/* ParseKeywords.proto */
static CYTHON_INLINE int __Pyx_ParseKeywords(
    PyObject *kwds, PyObject *const *kwvalues, PyObject ** const argnames[],
    PyObject *kwds2, PyObject *values[],
    Py_ssize_t num_pos_args, Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs
);

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* PyObjectFormatSimple.proto */
#if CYTHON_COMPILING_IN_PYPY
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#elif CYTHON_USE_TYPE_SLOTS
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        likely(PyLong_CheckExact(s)) ? PyLong_Type.tp_repr(s) :\
        likely(PyFloat_CheckExact(s)) ? PyFloat_Type.tp_repr(s) :\
        PyObject_Format(s, f))
#else
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#endif

/* UnicodeConcatInPlace.proto */
# if CYTHON_COMPILING_IN_CPYTHON
    #if CYTHON_REFNANNY
        #define __Pyx_PyUnicode_ConcatInPlace(left, right, unsafe_shared) __Pyx_PyUnicode_ConcatInPlaceImpl(&left, right, unsafe_shared, __pyx_refnanny)
    #else
        #define __Pyx_PyUnicode_ConcatInPlace(left, right, unsafe_shared) __Pyx_PyUnicode_ConcatInPlaceImpl(&left, right, unsafe_shared)
    #endif
    #define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_DefinitelyUniqueInPlace(left, right) __Pyx_PyUnicode_ConcatInPlace(left, right, __Pyx_ReferenceSharing_DefinitelyUnique)
    #define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(left, right) __Pyx_PyUnicode_ConcatInPlace(left, right, __Pyx_ReferenceSharing_OwnStrongReference)
    #define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_FunctionArgumentInPlace(left, right) __Pyx_PyUnicode_ConcatInPlace(left, right, __Pyx_ReferenceSharing_DefinitelyUnique)
    #define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_SharedReferenceInPlace(left, right) __Pyx_PyUnicode_ConcatInPlace(left, right, __Pyx_ReferenceSharing_SharedReference)
    static CYTHON_INLINE PyObject *__Pyx_PyUnicode_ConcatInPlaceImpl(PyObject **p_left, PyObject *right, int unsafe_shared
        #if CYTHON_REFNANNY
        , void* __pyx_refnanny
        #endif
    );
#else
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_DefinitelyUniqueInPlace __Pyx_PyUnicode_Concat
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace __Pyx_PyUnicode_Concat
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_FunctionArgumentInPlace __Pyx_PyUnicode_Concat
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_SharedReferenceInPlace __Pyx_PyUnicode_Concat
#endif
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_DefinitelyUniqueInPlaceSafe(left, right)\
    ((unlikely((left) == Py_None) || unlikely((right) == Py_None)) ?\
    PyNumber_InPlaceAdd(left, right) : __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_DefinitelyUniqueInPlace(left, right))
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlaceSafe(left, right)\
    ((unlikely((left) == Py_None) || unlikely((right) == Py_None)) ?\
    PyNumber_InPlaceAdd(left, right) : __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(left, right))
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_FunctionArgumentInPlaceSafe(left, right)\
    ((unlikely((left) == Py_None) || unlikely((right) == Py_None)) ?\
    PyNumber_InPlaceAdd(left, right) : __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_FunctionArgumentInPlace(left, right))
#define __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_SharedReferenceInPlaceSafe(left, right)\
    ((unlikely((left) == Py_None) || unlikely((right) == Py_None)) ?\
    PyNumber_InPlaceAdd(left, right) : __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_SharedReferenceInPlace(left, right))

/* ListCompAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len)) {
        Py_INCREF(x);
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
        L->ob_item[len] = x;
        #else
        PyList_SET_ITEM(list, len, x);
        #endif
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif

/* PyTypeError_Check.proto */
#define __Pyx_PyExc_TypeError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_TypeError)

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* PyValueError_Check.proto */
#define __Pyx_PyExc_ValueError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_ValueError)

/* PyNotImplementedError_Check.proto */
#define __Pyx_PyExc_NotImplementedError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_NotImplementedError)

/* RejectKeywords.export */
static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds);

/* JoinPyUnicode.export */
static PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char);

/* GetAttr3.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);

/* RaiseUnexpectedTypeError.proto */
static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj);

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck, unsafe_shared) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck, has_gil, unsafe_shared)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck, int unsafe_shared);

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* PyKeyError_Check.proto */
#define __Pyx_PyExc_KeyError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_KeyError)

/* MoveIfSupported.proto */
#if CYTHON_USE_CPP_STD_MOVE
  #include <utility>
  #define __PYX_STD_MOVE_IF_SUPPORTED(x) std::move(x)
#else
  #define __PYX_STD_MOVE_IF_SUPPORTED(x) x
#endif

/* ArgTypeTestFunc.export */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))

/* ErrOccurredWithGIL.proto */
static CYTHON_INLINE int __Pyx_ErrOccurredWithGIL(void);

/* PyObjectFastCallMethod.proto */
#if CYTHON_VECTORCALL && PY_VERSION_HEX >= 0x03090000
#define __Pyx_PyObject_FastCallMethod(name, args, nargsf) PyObject_VectorcallMethod(name, args, nargsf, NULL)
#else
static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf);
#endif

/* PyObjectVectorCallKwBuilder.proto (used by PyObjectVectorCallMethodKwBuilder) */
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n);
#if CYTHON_VECTORCALL
#if PY_VERSION_HEX >= 0x03090000
#define __Pyx_Object_Vectorcall_CallFromBuilder PyObject_Vectorcall
#else
#define __Pyx_Object_Vectorcall_CallFromBuilder _PyObject_Vectorcall
#endif
#define __Pyx_MakeVectorcallBuilderKwds(n) PyTuple_New(n)
static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n);
static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n);
#else
#define __Pyx_Object_Vectorcall_CallFromBuilder __Pyx_PyObject_FastCallDict
#define __Pyx_MakeVectorcallBuilderKwds(n) __Pyx_PyDict_NewPresized(n)
#define __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n) PyDict_SetItem(builder, key, value)
#define __Pyx_VectorcallBuilder_AddArgStr(key, value, builder, args, n) PyDict_SetItemString(builder, key, value)
#endif

/* PyObjectVectorCallMethodKwBuilder.proto */
#if CYTHON_VECTORCALL && PY_VERSION_HEX >= 0x03090000
#define __Pyx_Object_VectorcallMethod_CallFromBuilder PyObject_VectorcallMethod
#else
static PyObject *__Pyx_Object_VectorcallMethod_CallFromBuilder(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames);
#endif

/* GetAttr.proto (used by Globals) */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);

/* Globals.proto */
static PyObject* __Pyx_Globals(void);

/* PySequenceContains.proto */
static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    int result = PySequence_Contains(seq, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* SliceObject.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
        PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
        int has_cstart, int has_cstop, int wraparound);

/* PyObjectDelAttr.proto (used by PyObjectSetAttrStr) */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
#define __Pyx_PyObject_DelAttr(o, n) PyObject_SetAttr(o, n, NULL)
#else
#define __Pyx_PyObject_DelAttr(o, n) PyObject_DelAttr(o, n)
#endif

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   __Pyx_PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* RaiseKeywordRequired.proto */
static void __Pyx_RaiseKeywordRequired(const char* func_name, PyObject* kw_name);

/* PyFutureWarning_Check.proto */
#define __Pyx_PyExc_FutureWarning_Check(obj)  __Pyx_TypeCheck(obj, PyExc_FutureWarning)

/* PyObjectFormatAndDecref.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f);
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f);

/* IterNextPlain.proto (used by IterNext) */
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next_Plain(PyObject *iterator);
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject *__Pyx_GetBuiltinNext_LimitedAPI(void);
#endif

/* IterNext.proto */
#define __Pyx_PyIter_Next(obj) __Pyx_PyIter_Next2(obj, NULL)
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject *, PyObject *);

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2) {
    return PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2);
}
#endif
#define __Pyx_PyErr_ExceptionMatches2(err1, err2)  __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
#ifdef PyExceptionInstance_Check
  #define __Pyx_PyBaseException_Check(obj) PyExceptionInstance_Check(obj)
#else
  #define __Pyx_PyBaseException_Check(obj) __Pyx_TypeCheck(obj, PyExc_BaseException)
#endif

/* DictGetItem.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
#define __Pyx_PyObject_Dict_GetItem(obj, name)\
    (likely(PyDict_CheckExact(obj)) ?\
     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
#else
#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
#endif

/* AssertionsEnabled.proto */
#if CYTHON_COMPILING_IN_LIMITED_API  ||  PY_VERSION_HEX >= 0x030C0000
  static int __pyx_assertions_enabled_flag;
  #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag)
  #if __clang__ || __GNUC__
  __attribute__((no_sanitize("thread")))
  #endif
  static int __Pyx_init_assertions_enabled(void) {
    PyObject *builtins, *debug, *debug_str;
    int flag;
    builtins = PyEval_GetBuiltins();
    if (!builtins) goto bad;
    debug_str = PyUnicode_FromStringAndSize("__debug__", 9);
    if (!debug_str) goto bad;
    debug = PyObject_GetItem(builtins, debug_str);
    Py_DECREF(debug_str);
    if (!debug) goto bad;
    flag = PyObject_IsTrue(debug);
    Py_DECREF(debug);
    if (flag == -1) goto bad;
    __pyx_assertions_enabled_flag = flag;
    return 0;
  bad:
    __pyx_assertions_enabled_flag = 1;
    return -1;
  }
#else
  #define __Pyx_init_assertions_enabled()  (0)
  #define __pyx_assertions_enabled()  (!Py_OptimizeFlag)
#endif

/* PyAssertionError_Check.proto */
#define __Pyx_PyExc_AssertionError_Check(obj)  __Pyx_TypeCheck(obj, PyExc_AssertionError)

/* CallableCheck.proto */
#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY
#define __Pyx_PyCallable_Check(obj)   (Py_TYPE(obj)->tp_call != NULL)
#else
#define __Pyx_PyCallable_Check(obj)   PyCallable_Check(obj)
#endif

/* PyObjectCallNoArg.proto (used by PyObjectCallMethod0) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);

/* PyObjectGetMethod.proto (used by PyObjectCallMethod0) */
#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
#endif

/* PyObjectCallMethod0.proto (used by dict_iter) */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);

/* RaiseNoneIterError.proto (used by UnpackTupleError) */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);

/* UnpackTupleError.proto (used by UnpackTuple2) */
static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);

/* UnpackTuple2.proto (used by dict_iter) */
static CYTHON_INLINE int __Pyx_unpack_tuple2(
    PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple);
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
    PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple);
static int __Pyx_unpack_tuple2_generic(
    PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple);

/* dict_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_is_dict);
static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);

/* tp_new.proto */
#define __Pyx_tp_new(type_obj, args) __Pyx_tp_new_kwargs(type_obj, args, NULL)
static CYTHON_INLINE PyObject* __Pyx_tp_new_kwargs(PyObject* type_obj, PyObject* args, PyObject* kwargs);

/* DefaultPlacementNew.proto */
#include <new>
template<typename T>
void __Pyx_default_placement_construct(T* x) {
    new (static_cast<void*>(x)) T();
}

/* CallNextTpDealloc.proto */
static void __Pyx_call_next_tp_dealloc(PyObject* obj, destructor current_tp_dealloc);

/* AllocateExtensionType.proto */
static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final);

/* CallTypeTraverse.proto */
#if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000)
#define __Pyx_call_type_traverse(o, always_call, visit, arg) 0
#else
static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg);
#endif

/* VoidPtrExport.proto */
static int __Pyx_ExportVoidPtr(PyObject *api_dict, const char *name, void *p, const char *sig);

/* GetApiDict.proto */
static PyObject *__Pyx_ApiExport_GetApiDict(void);

/* FunctionExport.proto */
static int __Pyx_ExportFunction(PyObject *api_dict, const char *name, void (*f)(void), const char *sig);

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto_3_2_4
#define __PYX_HAVE_RT_ImportType_proto_3_2_4
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#include <stdalign.h>
#endif
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
#define __PYX_GET_STRUCT_ALIGNMENT_3_2_4(s) alignof(s)
#else
#define __PYX_GET_STRUCT_ALIGNMENT_3_2_4(s) sizeof(void*)
#endif
enum __Pyx_ImportType_CheckSize_3_2_4 {
   __Pyx_ImportType_CheckSize_Error_3_2_4 = 0,
   __Pyx_ImportType_CheckSize_Warn_3_2_4 = 1,
   __Pyx_ImportType_CheckSize_Ignore_3_2_4 = 2
};
static PyTypeObject *__Pyx_ImportType_3_2_4(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_4 check_size);
#endif

/* LimitedApiGetTypeDict.proto (used by SetItemOnTypeDict) */
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp);
#endif

/* SetItemOnTypeDict.proto (used by FixUpExtensionType) */
static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v);
#define __Pyx_SetItemOnTypeDict(tp, k, v) __Pyx__SetItemOnTypeDict((PyTypeObject*)tp, k, v)

/* FixUpExtensionType.proto */
static CYTHON_INLINE int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);

/* ValidateBasesTuple.proto (used by PyType_Ready) */
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases);
#endif

/* PyType_Ready.proto */
CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t);

/* SetVTable.proto */
static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable);

/* GetVTable.proto (used by MergeVTables) */
static void* __Pyx_GetVtable(PyTypeObject *type);

/* MergeVTables.proto */
static int __Pyx_MergeVtables(PyTypeObject *type);

/* DelItemOnTypeDict.proto (used by SetupReduce) */
static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k);
#define __Pyx_DelItemOnTypeDict(tp, k) __Pyx__DelItemOnTypeDict((PyTypeObject*)tp, k)

/* SetupReduce.proto */
static int __Pyx_setup_reduce(PyObject* type_obj);

/* FunctionImport.proto */
static int __Pyx_ImportFunction_3_2_4(PyObject *module, const char *funcname, void (**f)(void), const char *sig);

/* dict_setdefault.proto (used by FetchCommonType) */
static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value);

/* AddModuleRef.proto (used by FetchSharedCythonModule) */
#if ((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING ) ||\
     __PYX_LIMITED_VERSION_HEX < 0x030d0000)
  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name);
#else
  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
#endif

/* FetchSharedCythonModule.proto (used by FetchCommonType) */
static PyObject *__Pyx_FetchSharedCythonABIModule(void);

/* FetchCommonType.proto (used by CommonTypesMetaclass) */
static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases);

/* CommonTypesMetaclass.proto (used by CythonFunctionShared) */
static int __pyx_CommonTypesMetaclass_init(PyObject *module);
#define __Pyx_CommonTypesMetaclass_USED

/* PyMethodNew.proto (used by CythonFunctionShared) */
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ);

/* PyVectorcallFastCallDict.proto (used by CythonFunctionShared) */
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
#endif

/* CythonFunctionShared.proto (used by CythonFunction) */
#define __Pyx_CyFunction_USED
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CYFUNCTION_COROUTINE     0x08
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_CyFunction_GetClassObj(f)\
      (((__pyx_CyFunctionObject *) (f))->func_classobj)
#else
  #define __Pyx_CyFunction_GetClassObj(f)\
      ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
#endif
#define __Pyx_CyFunction_SetClassObj(f, classobj)\
    __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj))
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject_HEAD
    PyObject *func;
#elif PY_VERSION_HEX < 0x030900B1
    PyCFunctionObject func;
#else
    PyCMethodObject func;
#endif
#if CYTHON_COMPILING_IN_LIMITED_API && CYTHON_METH_FASTCALL
    __pyx_vectorcallfunc func_vectorcall;
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_weakreflist;
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_dict;
#endif
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_classobj;
#endif
    PyObject *defaults;
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
    PyObject *func_is_coroutine;
} __pyx_CyFunctionObject;
#undef __Pyx_CyOrPyCFunction_Check
#define __Pyx_CyFunction_Check(obj)  __Pyx_TypeCheck(obj, __pyx_mstate_global->__pyx_CyFunctionType)
#define __Pyx_CyOrPyCFunction_Check(obj)  __Pyx_TypeCheck2(obj, __pyx_mstate_global->__pyx_CyFunctionType, &PyCFunction_Type)
#define __Pyx_CyFunction_CheckExact(obj)  __Pyx_IS_TYPE(obj, __pyx_mstate_global->__pyx_CyFunctionType)
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void));
#undef __Pyx_IsSameCFunction
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCyOrCFunction(func, cfunc)
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func,
                                                         PyTypeObject *defaults_type);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(PyObject *module);
#if CYTHON_METH_FASTCALL
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
#if CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall)
#else
#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
#endif
#endif

/* CythonFunction.proto */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);

/* GetNameInClass.proto */
#define __Pyx_GetNameInClass(var, nmspace, name)  (var) = __Pyx__GetNameInClass(nmspace, name)
static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name);

/* Py3UpdateBases.proto */
static PyObject* __Pyx_PEP560_update_bases(PyObject *bases);

/* CalculateMetaclass.proto */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

/* SetNameInClass.proto */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
#elif CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
#else
#define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)
#endif

/* PyObjectCall2Args.proto (used by Py3ClassCreate) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* PyObjectLookupSpecial.proto (used by Py3ClassCreate) */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 0)
#define __Pyx_PyObject_LookupSpecial(obj, attr_name)  __Pyx__PyObject_LookupSpecial(obj, attr_name, 1)
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error);
#else
#define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n)
#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n)
#endif

/* Py3ClassCreate.proto */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
                                           PyObject *mkw, PyObject *modname, PyObject *doc);
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);

/* CLineInTraceback.proto (used by AddTraceback) */
#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#else
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#endif

/* CodeObjectCache.proto (used by AddTraceback) */
#if CYTHON_COMPILING_IN_LIMITED_API
typedef PyObject __Pyx_CachedCodeObjectType;
#else
typedef PyCodeObject __Pyx_CachedCodeObjectType;
#endif
typedef struct {
    __Pyx_CachedCodeObjectType* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_int_type accessor_count;
  #endif
};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object);

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* CheckUnpickleChecksum.proto */
static CYTHON_INLINE int __Pyx_CheckUnpickleChecksum(long checksum, long checksum1, long checksum2, long checksum3, const char *members);

/* GCCDiagnostics.proto */
#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#define __Pyx_HAS_GCC_DIAGNOSTIC
#endif

/* CppExceptionConversion.proto */
#ifndef __Pyx_CppExn2PyErr
#include <new>
#include <typeinfo>
#include <stdexcept>
#include <ios>
static void __Pyx_CppExn2PyErr() {
  try {
    if (PyErr_Occurred())
      ; // let the latest Python exn pass through and ignore the current one
    else
      throw;
  } catch (const std::bad_alloc& exn) {
    PyErr_SetString(PyExc_MemoryError, exn.what());
  } catch (const std::bad_cast& exn) {
    PyErr_SetString(PyExc_TypeError, exn.what());
  } catch (const std::bad_typeid& exn) {
    PyErr_SetString(PyExc_TypeError, exn.what());
  } catch (const std::domain_error& exn) {
    PyErr_SetString(PyExc_ValueError, exn.what());
  } catch (const std::invalid_argument& exn) {
    PyErr_SetString(PyExc_ValueError, exn.what());
  } catch (const std::ios_base::failure& exn) {
    PyErr_SetString(PyExc_IOError, exn.what());
  } catch (const std::out_of_range& exn) {
    PyErr_SetString(PyExc_IndexError, exn.what());
  } catch (const std::overflow_error& exn) {
    PyErr_SetString(PyExc_OverflowError, exn.what());
  } catch (const std::range_error& exn) {
    PyErr_SetString(PyExc_ArithmeticError, exn.what());
  } catch (const std::underflow_error& exn) {
    PyErr_SetString(PyExc_ArithmeticError, exn.what());
  } catch (const std::exception& exn) {
    PyErr_SetString(PyExc_RuntimeError, exn.what());
  }
  catch (...)
  {
    PyErr_SetString(PyExc_RuntimeError, "Unknown exception");
  }
}
#endif

/* LengthHint.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_PyObject_LengthHint(o, defaultval)  (defaultval)
#else
#define __Pyx_PyObject_LengthHint(o, defaultval)  PyObject_LengthHint(o, defaultval)
#endif

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum____arrow_3a__3a_compute_3a__3a_Function_3a__3a_Kind(enum  arrow::compute::Function::Kind value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_JoinOptions_3a__3a_NullHandlingBehavior(enum arrow::compute::JoinOptions::NullHandlingBehavior value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_FilterOptions_3a__3a_NullSelectionBehavior(enum arrow::compute::FilterOptions::NullSelectionBehavior value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_DictionaryEncodeOptions_3a__3a_NullEncodingBehavior(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_CountOptions_3a__3a_CountMode(enum arrow::compute::CountOptions::CountMode value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_MapLookupOptions_3a__3a_Occurrence(enum arrow::compute::MapLookupOptions::Occurrence value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum____arrow_3a__3a_TimeUnit_3a__3a_type(enum  arrow::TimeUnit::type value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Ambiguous(enum arrow::compute::AssumeTimezoneOptions::Ambiguous value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Nonexistent(enum arrow::compute::AssumeTimezoneOptions::Nonexistent value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_QuantileOptions_3a__3a_Interpolation(enum arrow::compute::QuantileOptions::Interpolation value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_Utf8NormalizeOptions_3a__3a_Form(enum arrow::compute::Utf8NormalizeOptions::Form value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_RankOptions_3a__3a_Tiebreaker(enum arrow::compute::RankOptions::Tiebreaker value);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value);

/* CIntFromPy.proto */
static CYTHON_INLINE int64_t __Pyx_PyLong_As_int64_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum arrow::compute::JoinOptions::NullHandlingBehavior __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_JoinOptions_3a__3a_NullHandlingBehavior(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum arrow::compute::FilterOptions::NullSelectionBehavior __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_FilterOptions_3a__3a_NullSelectionBehavior(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_DictionaryEncodeOptions_3a__3a_NullEncodingBehavior(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE uint32_t __Pyx_PyLong_As_uint32_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum arrow::compute::CountOptions::CountMode __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_CountOptions_3a__3a_CountMode(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum arrow::compute::MapLookupOptions::Occurrence __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_MapLookupOptions_3a__3a_Occurrence(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum  arrow::TimeUnit::type __Pyx_PyLong_As_enum____arrow_3a__3a_TimeUnit_3a__3a_type(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum arrow::compute::AssumeTimezoneOptions::Ambiguous __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Ambiguous(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum arrow::compute::AssumeTimezoneOptions::Nonexistent __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Nonexistent(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum arrow::compute::QuantileOptions::Interpolation __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_QuantileOptions_3a__3a_Interpolation(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum arrow::compute::Utf8NormalizeOptions::Form __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_Utf8NormalizeOptions_3a__3a_Form(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE uint64_t __Pyx_PyLong_As_uint64_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum arrow::compute::RankOptions::Tiebreaker __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_RankOptions_3a__3a_Tiebreaker(PyObject *);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int64_t(int64_t value);

/* PyObjectCallMethod1.proto */
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);

/* UpdateUnpickledDict.proto */
static int __Pyx_UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index);

/* FormatTypeName.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
typedef PyObject *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%U"
#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
#define __Pyx_PyType_GetFullyQualifiedName PyType_GetFullyQualifiedName
#else
static __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp);
#endif
#else  // !LIMITED_API
typedef const char *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%.200s"
#define __Pyx_PyType_GetFullyQualifiedName(tp) ((tp)->tp_name)
#define __Pyx_DECREF_TypeName(obj)
#endif

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value);

/* GetRuntimeVersion.proto */
#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
static unsigned long __Pyx_cached_runtime_version = 0;
static void __Pyx_init_runtime_version(void);
#else
#define __Pyx_init_runtime_version()
#endif
static unsigned long __Pyx_get_runtime_version(void);

/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);

/* DecompressString.proto */
static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo);

/* MultiPhaseInitModuleState.proto */
#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
static PyObject *__Pyx_State_FindModule(void*);
static int __Pyx_State_AddModule(PyObject* module, void*);
static int __Pyx_State_RemoveModule(void*);
#elif CYTHON_USE_MODULE_STATE
#define __Pyx_State_FindModule PyState_FindModule
#define __Pyx_State_AddModule PyState_AddModule
#define __Pyx_State_RemoveModule PyState_RemoveModule
#endif

/* #### Code section: module_declarations ### */
/* CythonABIVersion.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
    #if CYTHON_METH_FASTCALL
        #define __PYX_FASTCALL_ABI_SUFFIX  "_fastcall"
    #else
        #define __PYX_FASTCALL_ABI_SUFFIX
    #endif
    #define __PYX_LIMITED_ABI_SUFFIX "limited" __PYX_FASTCALL_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX
#else
    #define __PYX_LIMITED_ABI_SUFFIX
#endif
#if __PYX_HAS_PY_AM_SEND == 1
    #define __PYX_AM_SEND_ABI_SUFFIX
#elif __PYX_HAS_PY_AM_SEND == 2
    #define __PYX_AM_SEND_ABI_SUFFIX "amsendbackport"
#else
    #define __PYX_AM_SEND_ABI_SUFFIX "noamsend"
#endif
#ifndef __PYX_MONITORING_ABI_SUFFIX
    #define __PYX_MONITORING_ABI_SUFFIX
#endif
#if CYTHON_USE_TP_FINALIZE
    #define __PYX_TP_FINALIZE_ABI_SUFFIX
#else
    #define __PYX_TP_FINALIZE_ABI_SUFFIX "nofinalize"
#endif
#if CYTHON_USE_FREELISTS || !defined(__Pyx_AsyncGen_USED)
    #define __PYX_FREELISTS_ABI_SUFFIX
#else
    #define __PYX_FREELISTS_ABI_SUFFIX "nofreelists"
#endif
#define CYTHON_ABI  __PYX_ABI_VERSION __PYX_LIMITED_ABI_SUFFIX __PYX_MONITORING_ABI_SUFFIX __PYX_TP_FINALIZE_ABI_SUFFIX __PYX_FREELISTS_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX
#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."

#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4real_real(PyComplexObject *__pyx_v_self); /* proto*/
#endif
#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4imag_imag(PyComplexObject *__pyx_v_self); /* proto*/
#endif
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4date_4year_year(PyDateTime_Date *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4date_5month_month(PyDateTime_Date *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4date_3day_day(PyDateTime_Date *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4time_4hour_hour(PyDateTime_Time *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4time_6minute_minute(PyDateTime_Time *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4time_6second_second(PyDateTime_Time *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4time_11microsecond_microsecond(PyDateTime_Time *__pyx_v_self); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7cpython_8datetime_4time_6tzinfo_tzinfo(PyDateTime_Time *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4time_4fold_fold(PyDateTime_Time *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_4year_year(PyDateTime_DateTime *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_5month_month(PyDateTime_DateTime *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_3day_day(PyDateTime_DateTime *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_4hour_hour(PyDateTime_DateTime *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_6minute_minute(PyDateTime_DateTime *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_6second_second(PyDateTime_DateTime *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_11microsecond_microsecond(PyDateTime_DateTime *__pyx_v_self); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_7cpython_8datetime_8datetime_6tzinfo_tzinfo(PyDateTime_DateTime *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_4fold_fold(PyDateTime_DateTime *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_9timedelta_3day_day(PyDateTime_Delta *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_9timedelta_6second_second(PyDateTime_Delta *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_7cpython_8datetime_9timedelta_11microsecond_microsecond(PyDateTime_Delta *__pyx_v_self); /* proto*/
static void __pyx_f_7pyarrow_8_compute_12ScalarKernel_init(struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *__pyx_v_self,  arrow::compute::ScalarKernel const *__pyx_v_kernel); /* proto*/
static void __pyx_f_7pyarrow_8_compute_12VectorKernel_init(struct __pyx_obj_7pyarrow_8_compute_VectorKernel *__pyx_v_self,  arrow::compute::VectorKernel const *__pyx_v_kernel); /* proto*/
static void __pyx_f_7pyarrow_8_compute_21ScalarAggregateKernel_init(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *__pyx_v_self,  arrow::compute::ScalarAggregateKernel const *__pyx_v_kernel); /* proto*/
static void __pyx_f_7pyarrow_8_compute_19HashAggregateKernel_init(struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *__pyx_v_self,  arrow::compute::HashAggregateKernel const *__pyx_v_kernel); /* proto*/
static void __pyx_f_7pyarrow_8_compute_8Function_init(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func); /* proto*/
static void __pyx_f_7pyarrow_8_compute_14ScalarFunction_init(struct __pyx_obj_7pyarrow_8_compute_ScalarFunction *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func); /* proto*/
static void __pyx_f_7pyarrow_8_compute_14VectorFunction_init(struct __pyx_obj_7pyarrow_8_compute_VectorFunction *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func); /* proto*/
static void __pyx_f_7pyarrow_8_compute_23ScalarAggregateFunction_init(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func); /* proto*/
static void __pyx_f_7pyarrow_8_compute_21HashAggregateFunction_init(struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func); /* proto*/
static void __pyx_f_7pyarrow_8_compute_12MetaFunction_init(struct __pyx_obj_7pyarrow_8_compute_MetaFunction *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func); /* proto*/
static  arrow::compute::FunctionOptions const *__pyx_f_7pyarrow_8_compute_15FunctionOptions_get_options(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self); /* proto*/
static void __pyx_f_7pyarrow_8_compute_15FunctionOptions_init(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self, std::shared_ptr< arrow::compute::FunctionOptions>  const &__pyx_v_sp); /* proto*/
static CYTHON_INLINE std::shared_ptr< arrow::compute::FunctionOptions>  __pyx_f_7pyarrow_8_compute_15FunctionOptions_unwrap(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self); /* proto*/
static void __pyx_f_7pyarrow_8_compute_12_CastOptions_init(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, std::shared_ptr< arrow::compute::FunctionOptions>  const &__pyx_v_sp); /* proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_17_ListSliceOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *__pyx_v_self, PyObject *__pyx_v_start, int __pyx_skip_dispatch, struct __pyx_opt_args_7pyarrow_8_compute_17_ListSliceOptions__set_options *__pyx_optional_args); /* proto*/
static void __pyx_f_7pyarrow_8_compute_10Expression_init(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, arrow::compute::Expression const &__pyx_v_sp); /* proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_10Expression_wrap(arrow::compute::Expression const &__pyx_v_sp); /* proto*/
static CYTHON_INLINE arrow::compute::Expression __pyx_f_7pyarrow_8_compute_10Expression_unwrap(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self); /* proto*/
static struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_f_7pyarrow_8_compute_10Expression__expr_or_scalar(PyObject *__pyx_v_expr); /* proto*/
static void __pyx_f_7pyarrow_8_compute_10UdfContext_init(struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self,  arrow::py::UdfContext const &__pyx_v_c_context); /* proto*/
static void __pyx_f_7pyarrow_8_compute_11RegisterUdf_init(struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *__pyx_v_self, __pyx_t_7pyarrow_8_compute_CRegisterUdf const __pyx_v_register_func); /* proto*/

/* Module declarations from "cpython.version" */

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.type" */

/* Module declarations from "libc.string" */

/* Module declarations from "libc.stdio" */

/* Module declarations from "cpython.object" */

/* Module declarations from "cpython.ref" */

/* Module declarations from "cpython.exc" */

/* Module declarations from "cpython.module" */

/* Module declarations from "cpython.mem" */

/* Module declarations from "cpython.tuple" */

/* Module declarations from "cpython.list" */

/* Module declarations from "cpython.sequence" */

/* Module declarations from "cpython.mapping" */

/* Module declarations from "cpython.iterator" */

/* Module declarations from "cpython.number" */

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.bool" */

/* Module declarations from "cpython.long" */

/* Module declarations from "cpython.float" */

/* Module declarations from "cython" */

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.complex" */

/* Module declarations from "libc.stddef" */

/* Module declarations from "cpython.unicode" */

/* Module declarations from "cpython.pyport" */

/* Module declarations from "cpython.dict" */

/* Module declarations from "cpython.instance" */

/* Module declarations from "cpython.function" */

/* Module declarations from "cpython.method" */

/* Module declarations from "cpython.weakref" */

/* Module declarations from "cpython.getargs" */

/* Module declarations from "cpython.pythread" */

/* Module declarations from "cpython.pystate" */

/* Module declarations from "cpython.set" */

/* Module declarations from "cpython.buffer" */

/* Module declarations from "cpython.bytes" */

/* Module declarations from "cpython.pycapsule" */

/* Module declarations from "cpython.contextvars" */

/* Module declarations from "cpython" */

/* Module declarations from "cpython.slice" */

/* Module declarations from "libcpp" */

/* Module declarations from "libcpp.cast" */

/* Module declarations from "libcpp.memory" */

/* Module declarations from "libcpp.utility" */

/* Module declarations from "libc.stdint" */

/* Module declarations from "libcpp.functional" */

/* Module declarations from "libcpp.optional" */

/* Module declarations from "libcpp.string_view" */

/* Module declarations from "libcpp.string" */

/* Module declarations from "libcpp.vector" */

/* Module declarations from "libcpp.unordered_map" */

/* Module declarations from "libcpp.unordered_set" */

/* Module declarations from "datetime" */

/* Module declarations from "cpython.datetime" */

/* Module declarations from "pyarrow.includes.common" */

/* Module declarations from "pyarrow.includes.libarrow" */

/* Module declarations from "pyarrow.includes.libarrow_python" */

/* Module declarations from "pyarrow.lib" */
static int (*__pyx_f_7pyarrow_3lib_check_status)(arrow::Status const &); /*proto*/
static  arrow::MemoryPool *(*__pyx_f_7pyarrow_3lib_maybe_unbox_memory_pool)(struct __pyx_obj_7pyarrow_3lib_MemoryPool *); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_box_memory_pool)( arrow::MemoryPool *); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_wrap_datum)( arrow::Datum const &); /*proto*/
static struct __pyx_obj_7pyarrow_3lib_DataType *(*__pyx_f_7pyarrow_3lib_ensure_type)(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_7pyarrow_3lib_ensure_type *__pyx_optional_args); /*proto*/
static std::shared_ptr< arrow::KeyValueMetadata const >  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_metadata)(PyObject *); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_buffer)(std::shared_ptr< arrow::Buffer>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_resizable_buffer)(std::shared_ptr< arrow::ResizableBuffer>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_data_type)(std::shared_ptr< arrow::DataType>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_field)(std::shared_ptr< arrow::Field>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_schema)(std::shared_ptr< arrow::Schema>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_scalar)(std::shared_ptr< arrow::Scalar>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_array)(std::shared_ptr< arrow::Array>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_chunked_array)(std::shared_ptr< arrow::ChunkedArray>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_sparse_coo_tensor)(std::shared_ptr< arrow::SparseCOOTensor>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_sparse_csc_matrix)(std::shared_ptr< arrow::SparseCSCMatrix>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_sparse_csf_tensor)(std::shared_ptr< arrow::SparseCSFTensor>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_sparse_csr_matrix)(std::shared_ptr< arrow::SparseCSRMatrix>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_tensor)(std::shared_ptr< arrow::Tensor>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_batch)(std::shared_ptr< arrow::RecordBatch>  const &); /*proto*/
static PyObject *(*__pyx_f_7pyarrow_3lib_pyarrow_wrap_table)(std::shared_ptr< arrow::Table>  const &); /*proto*/
static std::shared_ptr< arrow::Buffer>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_buffer)(PyObject *); /*proto*/
static std::shared_ptr< arrow::DataType>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_data_type)(PyObject *); /*proto*/
static std::shared_ptr< arrow::Field>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_field)(PyObject *); /*proto*/
static std::shared_ptr< arrow::Schema>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_schema)(PyObject *); /*proto*/
static std::shared_ptr< arrow::Scalar>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_scalar)(PyObject *); /*proto*/
static std::shared_ptr< arrow::Array>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_array)(PyObject *); /*proto*/
static std::shared_ptr< arrow::ChunkedArray>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_chunked_array)(PyObject *); /*proto*/
static std::shared_ptr< arrow::SparseCOOTensor>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_sparse_coo_tensor)(PyObject *); /*proto*/
static std::shared_ptr< arrow::SparseCSCMatrix>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_sparse_csc_matrix)(PyObject *); /*proto*/
static std::shared_ptr< arrow::SparseCSFTensor>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_sparse_csf_tensor)(PyObject *); /*proto*/
static std::shared_ptr< arrow::SparseCSRMatrix>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_sparse_csr_matrix)(PyObject *); /*proto*/
static std::shared_ptr< arrow::Tensor>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_tensor)(PyObject *); /*proto*/
static std::shared_ptr< arrow::RecordBatch>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_batch)(PyObject *); /*proto*/
static std::shared_ptr< arrow::Table>  (*__pyx_f_7pyarrow_3lib_pyarrow_unwrap_table)(PyObject *); /*proto*/

/* Module declarations from "pyarrow._compute" */
static arrow::compute::Expression __pyx_v_7pyarrow_8_compute__true;
static struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *__pyx_v_7pyarrow_8_compute__global_func_registry = 0;
static  arrow::FieldRef __pyx_f_7pyarrow_8_compute__ensure_field_ref(PyObject *); /*proto*/
static std::vector< arrow::compute::SortKey>  __pyx_f_7pyarrow_8_compute_unwrap_sort_keys(PyObject *, struct __pyx_opt_args_7pyarrow_8_compute_unwrap_sort_keys *__pyx_optional_args); /*proto*/
static  arrow::compute::SortOrder __pyx_f_7pyarrow_8_compute_unwrap_sort_order(PyObject *); /*proto*/
static  arrow::compute::NullPlacement __pyx_f_7pyarrow_8_compute_unwrap_null_placement(PyObject *); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_wrap_scalar_function(std::shared_ptr< arrow::compute::Function>  const &); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_wrap_vector_function(std::shared_ptr< arrow::compute::Function>  const &); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_wrap_scalar_aggregate_function(std::shared_ptr< arrow::compute::Function>  const &); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_wrap_hash_aggregate_function(std::shared_ptr< arrow::compute::Function>  const &); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_wrap_meta_function(std::shared_ptr< arrow::compute::Function>  const &); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_wrap_function(std::shared_ptr< arrow::compute::Function>  const &); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_wrap_scalar_kernel( arrow::compute::ScalarKernel const *); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_wrap_vector_kernel( arrow::compute::VectorKernel const *); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_wrap_scalar_aggregate_kernel( arrow::compute::ScalarAggregateKernel const *); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_wrap_hash_aggregate_kernel( arrow::compute::HashAggregateKernel const *); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute__pack_compute_args(PyObject *, std::vector< arrow::Datum>  *); /*proto*/
static arrow::compute::RoundMode __pyx_f_7pyarrow_8_compute_unwrap_round_mode(PyObject *); /*proto*/
static arrow::compute::CalendarUnit __pyx_f_7pyarrow_8_compute_unwrap_round_temporal_unit(PyObject *); /*proto*/
static CYTHON_INLINE  arrow::compute::FunctionDoc __pyx_f_7pyarrow_8_compute__make_function_doc(PyObject *); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_box_udf_context( arrow::py::UdfContext const &); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute__udf_callback(PyObject *,  arrow::py::UdfContext const &, PyObject *); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_get_register_scalar_function(void); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_get_register_tabular_function(void); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_get_register_aggregate_function(void); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_get_register_vector_function(void); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute___pyx_unpickle_Kernel__set_state(struct __pyx_obj_7pyarrow_8_compute_Kernel *, PyObject *); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(std::string const &); /*proto*/
static std::string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(PyObject *); /*proto*/
static std::vector<bool>  __pyx_convert_vector_from_py_bool(PyObject *); /*proto*/
static std::vector<int>  __pyx_convert_vector_from_py_int(PyObject *); /*proto*/
static std::vector<double>  __pyx_convert_vector_from_py_double(PyObject *); /*proto*/
/* #### Code section: typeinfo ### */
/* #### Code section: before_global_var ### */
#define __Pyx_MODULE_NAME "pyarrow._compute"
extern int __pyx_module_is_main_pyarrow___compute;
int __pyx_module_is_main_pyarrow___compute = 0;

/* Implementation of "pyarrow._compute" */
/* #### Code section: global_var ### */
static PyObject *__pyx_builtin_staticmethod;
/* #### Code section: string_decls ### */
static const char __pyx_k__3[] = "";
/* #### Code section: decls ### */
static PyObject *__pyx_pf_7pyarrow_8_compute__pas(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_2_forbid_instantiation(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_klass, PyObject *__pyx_v_subclasses_instead); /* proto */
static int __pyx_pf_7pyarrow_8_compute_6Kernel___init__(struct __pyx_obj_7pyarrow_8_compute_Kernel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_6Kernel_2__reduce_cython__(struct __pyx_obj_7pyarrow_8_compute_Kernel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_6Kernel_4__setstate_cython__(struct __pyx_obj_7pyarrow_8_compute_Kernel *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12ScalarKernel___repr__(struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12ScalarKernel_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12ScalarKernel_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12VectorKernel___repr__(struct __pyx_obj_7pyarrow_8_compute_VectorKernel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12VectorKernel_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_VectorKernel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12VectorKernel_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_VectorKernel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21ScalarAggregateKernel___repr__(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21ScalarAggregateKernel_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21ScalarAggregateKernel_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19HashAggregateKernel___repr__(struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19HashAggregateKernel_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19HashAggregateKernel_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_7pyarrow_8_compute_8Function___init__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_2__repr__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_4__reduce__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_4name___get__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_5arity___get__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_4kind___get__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_4_doc___get__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_11num_kernels___get__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_6call(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self, PyObject *__pyx_v_args, struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_options, struct __pyx_obj_7pyarrow_3lib_MemoryPool *__pyx_v_memory_pool, PyObject *__pyx_v_length); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14ScalarFunction_7kernels___get__(struct __pyx_obj_7pyarrow_8_compute_ScalarFunction *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14VectorFunction_7kernels___get__(struct __pyx_obj_7pyarrow_8_compute_VectorFunction *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_23ScalarAggregateFunction_7kernels___get__(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21HashAggregateFunction_7kernels___get__(struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12MetaFunction_7kernels___get__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_MetaFunction *__pyx_v_self); /* proto */
static int __pyx_pf_7pyarrow_8_compute_16FunctionRegistry___init__(struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16FunctionRegistry_2list_functions(struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16FunctionRegistry_4get_function(struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16FunctionRegistry_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16FunctionRegistry_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_4function_registry(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_6get_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_8list_functions(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_args, PyObject *__pyx_v_options, PyObject *__pyx_v_memory_pool, PyObject *__pyx_v_length); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_serialize(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_2deserialize(PyObject *__pyx_v_buf); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_4__repr__(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_6__eq__(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self, struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_34__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_raise_invalid_function_option(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value, PyObject *__pyx_v_description, PyObject *__pyx_v_exception_class); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, struct __pyx_obj_7pyarrow_3lib_DataType *__pyx_v_target_type, PyObject *__pyx_v_allow_int_overflow, PyObject *__pyx_v_allow_time_truncate, PyObject *__pyx_v_allow_time_overflow, PyObject *__pyx_v_allow_decimal_truncate, PyObject *__pyx_v_allow_float_truncate, PyObject *__pyx_v_allow_invalid_utf8); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_2_set_type(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, PyObject *__pyx_v_target_type); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_4_set_safe(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_6_set_unsafe(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_8is_safe(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self); /* proto */
static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self); /* proto */
static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self); /* proto */
static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self); /* proto */
static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self); /* proto */
static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self); /* proto */
static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11CastOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_target_type, PyObject *__pyx_v_allow_int_overflow, PyObject *__pyx_v_allow_time_truncate, PyObject *__pyx_v_allow_time_overflow, PyObject *__pyx_v_allow_decimal_truncate, PyObject *__pyx_v_allow_float_truncate, PyObject *__pyx_v_allow_invalid_utf8); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11CastOptions_2safe(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target_type); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11CastOptions_4unsafe(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target_type); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14_skip_nulls_doc(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_min_count_doc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_default); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_28_ElementWiseAggregateOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions *__pyx_v_self, PyObject *__pyx_v_skip_nulls); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_28_ElementWiseAggregateOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_28_ElementWiseAggregateOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_27ElementWiseAggregateOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_skip_nulls); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_RoundOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RoundOptions *__pyx_v_self, PyObject *__pyx_v_ndigits, PyObject *__pyx_v_round_mode); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_RoundOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_RoundOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12RoundOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_ndigits, PyObject *__pyx_v_round_mode); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19_RoundBinaryOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions *__pyx_v_self, PyObject *__pyx_v_round_mode); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19_RoundBinaryOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19_RoundBinaryOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18RoundBinaryOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_round_mode); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21_RoundTemporalOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions *__pyx_v_self, PyObject *__pyx_v_multiple, PyObject *__pyx_v_unit, PyObject *__pyx_v_week_starts_monday, PyObject *__pyx_v_ceil_is_strictly_greater, PyObject *__pyx_v_calendar_based_origin); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21_RoundTemporalOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21_RoundTemporalOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20RoundTemporalOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_multiple, PyObject *__pyx_v_unit, PyObject *__pyx_v_week_starts_monday, PyObject *__pyx_v_ceil_is_strictly_greater, PyObject *__pyx_v_calendar_based_origin); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_23_RoundToMultipleOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions *__pyx_v_self, PyObject *__pyx_v_multiple, PyObject *__pyx_v_round_mode); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_23_RoundToMultipleOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_23_RoundToMultipleOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_22RoundToMultipleOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_multiple, PyObject *__pyx_v_round_mode); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_JoinOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__JoinOptions *__pyx_v_self, PyObject *__pyx_v_null_handling, PyObject *__pyx_v_null_replacement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_JoinOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__JoinOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_JoinOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__JoinOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11JoinOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_null_handling, PyObject *__pyx_v_null_replacement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_22_MatchSubstringOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_ignore_case); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_22_MatchSubstringOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_22_MatchSubstringOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21MatchSubstringOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_ignore_case); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11_PadOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__PadOptions *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_padding, PyObject *__pyx_v_lean_left_on_odd_padding); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11_PadOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PadOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11_PadOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PadOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10PadOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_padding, PyObject *__pyx_v_lean_left_on_odd_padding); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_ZeroFillOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_padding); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_ZeroFillOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_ZeroFillOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15ZeroFillOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_padding); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_TrimOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__TrimOptions *__pyx_v_self, PyObject *__pyx_v_characters); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_TrimOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TrimOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_TrimOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TrimOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11TrimOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_characters); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_24_ReplaceSubstringOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_replacement, PyObject *__pyx_v_max_replacements); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_24_ReplaceSubstringOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_24_ReplaceSubstringOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_23ReplaceSubstringOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_replacement, PyObject *__pyx_v_max_replacements); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_ExtractRegexOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions *__pyx_v_self, PyObject *__pyx_v_pattern); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_ExtractRegexOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_ExtractRegexOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19ExtractRegexOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pattern); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_24_ExtractRegexSpanOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions *__pyx_v_self, PyObject *__pyx_v_pattern); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_24_ExtractRegexSpanOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_24_ExtractRegexSpanOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_23ExtractRegexSpanOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pattern); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_SliceOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SliceOptions *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_step); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_SliceOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SliceOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_SliceOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SliceOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12SliceOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_step); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_ListSliceOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_step, PyObject *__pyx_v_return_fixed_size_list); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_ListSliceOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_ListSliceOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16ListSliceOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_step, PyObject *__pyx_v_return_fixed_size_list); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_ReplaceSliceOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_replacement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_ReplaceSliceOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_ReplaceSliceOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19ReplaceSliceOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_replacement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14_FilterOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__FilterOptions *__pyx_v_self, PyObject *__pyx_v_null_selection_behavior); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14_FilterOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__FilterOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14_FilterOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__FilterOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13FilterOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_null_selection_behavior); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_24_DictionaryEncodeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions *__pyx_v_self, PyObject *__pyx_v_null_encoding); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_24_DictionaryEncodeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_24_DictionaryEncodeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_23DictionaryEncodeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_null_encoding); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_RunEndEncodeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions *__pyx_v_self, PyObject *__pyx_v_run_end_type); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_RunEndEncodeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_RunEndEncodeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_36__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19RunEndEncodeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_run_end_type); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_26_InversePermutationOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions *__pyx_v_self, PyObject *__pyx_v_max_index, PyObject *__pyx_v_output_type); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_26_InversePermutationOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_26_InversePermutationOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_25InversePermutationOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_max_index, PyObject *__pyx_v_output_type); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15_ScatterOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ScatterOptions *__pyx_v_self, PyObject *__pyx_v_max_index); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15_ScatterOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ScatterOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15_ScatterOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ScatterOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14ScatterOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_max_index); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_TakeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__TakeOptions *__pyx_v_self, PyObject *__pyx_v_boundscheck); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_TakeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TakeOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_TakeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TakeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11TakeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_boundscheck); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18_MakeStructOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions *__pyx_v_self, PyObject *__pyx_v_field_names, PyObject *__pyx_v_field_nullability, PyObject *__pyx_v_field_metadata); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18_MakeStructOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18_MakeStructOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17MakeStructOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_field_names, PyObject *__pyx_v_field_nullability, PyObject *__pyx_v_field_metadata); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19_StructFieldOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions *__pyx_v_self, PyObject *__pyx_v_indices); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19_StructFieldOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19_StructFieldOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18StructFieldOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_indices); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_23_ScalarAggregateOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions *__pyx_v_self, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_23_ScalarAggregateOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_23_ScalarAggregateOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_22ScalarAggregateOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_CountOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__CountOptions *__pyx_v_self, PyObject *__pyx_v_mode); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_CountOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CountOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_CountOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CountOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12CountOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_mode); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_IndexOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__IndexOptions *__pyx_v_self, PyObject *__pyx_v_scalar); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_IndexOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__IndexOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_IndexOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__IndexOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12IndexOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_MapLookupOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions *__pyx_v_self, PyObject *__pyx_v_query_key, PyObject *__pyx_v_occurrence); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_MapLookupOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_MapLookupOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16MapLookupOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_query_key, PyObject *__pyx_v_occurrence); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_ModeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ModeOptions *__pyx_v_self, PyObject *__pyx_v_n, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_ModeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ModeOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_ModeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ModeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11ModeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_n, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_SetLookupOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions *__pyx_v_self, PyObject *__pyx_v_value_set, bool __pyx_v_skip_nulls); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_SetLookupOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_SetLookupOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16SetLookupOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_value_set, PyObject *__pyx_v_skip_nulls); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrptimeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions *__pyx_v_self, PyObject *__pyx_v_format, PyObject *__pyx_v_unit, PyObject *__pyx_v_error_is_null); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrptimeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrptimeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15StrptimeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_format, PyObject *__pyx_v_unit, PyObject *__pyx_v_error_is_null); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrftimeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions *__pyx_v_self, PyObject *__pyx_v_format, PyObject *__pyx_v_locale); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrftimeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrftimeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15StrftimeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_format, PyObject *__pyx_v_locale); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_DayOfWeekOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions *__pyx_v_self, PyObject *__pyx_v_count_from_zero, PyObject *__pyx_v_week_start); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_DayOfWeekOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_DayOfWeekOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16DayOfWeekOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_count_from_zero, PyObject *__pyx_v_week_start); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_WeekOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__WeekOptions *__pyx_v_self, PyObject *__pyx_v_week_starts_monday, PyObject *__pyx_v_count_from_zero, PyObject *__pyx_v_first_week_is_fully_in_year); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_WeekOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__WeekOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_WeekOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__WeekOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11WeekOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_week_starts_monday, PyObject *__pyx_v_count_from_zero, PyObject *__pyx_v_first_week_is_fully_in_year); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_22_AssumeTimezoneOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions *__pyx_v_self, PyObject *__pyx_v_timezone, PyObject *__pyx_v_ambiguous, PyObject *__pyx_v_nonexistent); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_22_AssumeTimezoneOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_22_AssumeTimezoneOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21AssumeTimezoneOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_timezone, PyObject *__pyx_v_ambiguous, PyObject *__pyx_v_nonexistent); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_NullOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__NullOptions *__pyx_v_self, PyObject *__pyx_v_nan_is_null); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_NullOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__NullOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_NullOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__NullOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11NullOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_nan_is_null); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_VarianceOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__VarianceOptions *__pyx_v_self, PyObject *__pyx_v_ddof, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_VarianceOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__VarianceOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_VarianceOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__VarianceOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15VarianceOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_ddof, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_SkewOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SkewOptions *__pyx_v_self, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_biased, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_SkewOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SkewOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_SkewOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SkewOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11SkewOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_biased, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_SplitOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SplitOptions *__pyx_v_self, PyObject *__pyx_v_max_splits, PyObject *__pyx_v_reverse); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_SplitOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SplitOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13_SplitOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SplitOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12SplitOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_max_splits, PyObject *__pyx_v_reverse); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_SplitPatternOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_max_splits, PyObject *__pyx_v_reverse); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_SplitPatternOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_SplitPatternOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19SplitPatternOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_max_splits, PyObject *__pyx_v_reverse); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_PartitionNthOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions *__pyx_v_self, PyObject *__pyx_v_pivot, PyObject *__pyx_v_null_placement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_PartitionNthOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_PartitionNthOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19PartitionNthOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pivot, PyObject *__pyx_v_null_placement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_WinsorizeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions *__pyx_v_self, PyObject *__pyx_v_lower_limit, PyObject *__pyx_v_upper_limit); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_WinsorizeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_WinsorizeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16WinsorizeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_lower_limit, PyObject *__pyx_v_upper_limit); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18_CumulativeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_skip_nulls); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18_CumulativeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18_CumulativeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17CumulativeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_skip_nulls); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20CumulativeSumOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_skip_nulls); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_PairwiseOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions *__pyx_v_self, PyObject *__pyx_v_period); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_PairwiseOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_PairwiseOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15PairwiseOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_period); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19_ListFlattenOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions *__pyx_v_self, PyObject *__pyx_v_recursive); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19_ListFlattenOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19_ListFlattenOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18ListFlattenOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_recursive); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_ArraySortOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions *__pyx_v_self, PyObject *__pyx_v_order, PyObject *__pyx_v_null_placement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_ArraySortOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17_ArraySortOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16ArraySortOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_order, PyObject *__pyx_v_null_placement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_SortOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SortOptions *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_SortOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SortOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_SortOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SortOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11SortOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15_SelectKOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SelectKOptions *__pyx_v_self, PyObject *__pyx_v_k, PyObject *__pyx_v_sort_keys); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15_SelectKOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SelectKOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15_SelectKOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SelectKOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14SelectKOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_k, PyObject *__pyx_v_sort_keys); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_QuantileOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__QuantileOptions *__pyx_v_self, PyObject *__pyx_v_quantiles, PyObject *__pyx_v_interp, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_QuantileOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__QuantileOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_16_QuantileOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__QuantileOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15QuantileOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_q, PyObject *__pyx_v_interpolation, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15_TDigestOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__TDigestOptions *__pyx_v_self, PyObject *__pyx_v_quantiles, PyObject *__pyx_v_delta, PyObject *__pyx_v_buffer_size, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15_TDigestOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TDigestOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_15_TDigestOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TDigestOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14TDigestOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_q, PyObject *__pyx_v_delta, PyObject *__pyx_v_buffer_size, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21_Utf8NormalizeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions *__pyx_v_self, PyObject *__pyx_v_form); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21_Utf8NormalizeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_21_Utf8NormalizeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20Utf8NormalizeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_form); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14_RandomOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RandomOptions *__pyx_v_self, PyObject *__pyx_v_initializer); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14_RandomOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RandomOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_14_RandomOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RandomOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_13RandomOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_initializer); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_RankOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RankOptions *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement, PyObject *__pyx_v_tiebreaker); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_RankOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RankOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_12_RankOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RankOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11RankOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement, PyObject *__pyx_v_tiebreaker); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_RankQuantileOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_RankQuantileOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20_RankQuantileOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_19RankQuantileOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18_PivotWiderOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions *__pyx_v_self, PyObject *__pyx_v_key_names, PyObject *__pyx_v_unexpected_key_behavior); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18_PivotWiderOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18_PivotWiderOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_17PivotWiderOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key_names, PyObject *__pyx_v_unexpected_key_behavior); /* proto */
static int __pyx_pf_7pyarrow_8_compute_10Expression___init__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_2equals(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_4__str__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_6__repr__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_8from_substrait(PyObject *__pyx_v_message); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_10to_substrait(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, struct __pyx_obj_7pyarrow_3lib_Schema *__pyx_v_schema, bool __pyx_v_allow_arrow_extensions); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_12_deserialize(struct __pyx_obj_7pyarrow_3lib_Buffer *__pyx_v_buffer); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_14__reduce__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_16_call(PyObject *__pyx_v_function_name, PyObject *__pyx_v_arguments, struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_options); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_18__richcmp__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /* proto */
static int __pyx_pf_7pyarrow_8_compute_10Expression_20__bool__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_22__invert__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_24__and__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_26__or__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_28__add__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_30__mul__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_32__sub__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_34__truediv__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_36is_valid(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_38is_null(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, int __pyx_v_nan_is_null); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_40is_nan(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_42cast(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_type, PyObject *__pyx_v_safe, PyObject *__pyx_v_options); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_44isin(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_values); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_46_field(PyObject *__pyx_v_name_or_idx); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_48_nested_field(PyObject *__pyx_v_names); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_50_scalar(PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_7pyarrow_8_compute_10UdfContext___init__(struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10UdfContext_12batch_length___get__(struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10UdfContext_11memory_pool___get__(struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10UdfContext_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_10UdfContext_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_18_get_udf_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_memory_pool, PyObject *__pyx_v_batch_length); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11RegisterUdf___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_11RegisterUdf_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_20register_scalar_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func, PyObject *__pyx_v_function_name, PyObject *__pyx_v_function_doc, PyObject *__pyx_v_in_types, PyObject *__pyx_v_out_type, PyObject *__pyx_v_func_registry); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_22register_vector_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func, PyObject *__pyx_v_function_name, PyObject *__pyx_v_function_doc, PyObject *__pyx_v_in_types, PyObject *__pyx_v_out_type, PyObject *__pyx_v_func_registry); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_24register_aggregate_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func, PyObject *__pyx_v_function_name, PyObject *__pyx_v_function_doc, PyObject *__pyx_v_in_types, PyObject *__pyx_v_out_type, PyObject *__pyx_v_func_registry); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_26register_tabular_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func, PyObject *__pyx_v_function_name, PyObject *__pyx_v_function_doc, PyObject *__pyx_v_in_types, PyObject *__pyx_v_out_type, PyObject *__pyx_v_func_registry); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_28_register_user_defined_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_register_func, PyObject *__pyx_v_func, PyObject *__pyx_v_function_name, PyObject *__pyx_v_function_doc, PyObject *__pyx_v_in_types, PyObject *__pyx_v_out_type, PyObject *__pyx_v_func_registry); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_30call_tabular_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_args, PyObject *__pyx_v_func_registry); /* proto */
static PyObject *__pyx_pf_7pyarrow_8_compute_32__pyx_unpickle_Kernel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_tp_new_7pyarrow_8_compute_UdfContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_FunctionOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__SortOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_Expression(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_Kernel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_ScalarKernel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_VectorKernel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_ScalarAggregateKernel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_HashAggregateKernel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_Function(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_ScalarFunction(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_VectorFunction(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_ScalarAggregateFunction(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_HashAggregateFunction(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_MetaFunction(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_FunctionRegistry(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__CastOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ElementWiseAggregateOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__RoundOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__RoundBinaryOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__RoundTemporalOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__RoundToMultipleOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__JoinOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__MatchSubstringOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__PadOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ZeroFillOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__TrimOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ReplaceSubstringOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ExtractRegexOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ExtractRegexSpanOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__SliceOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ListSliceOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ReplaceSliceOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__FilterOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__DictionaryEncodeOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__RunEndEncodeOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__InversePermutationOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ScatterOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__TakeOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__MakeStructOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__StructFieldOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ScalarAggregateOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__CountOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__IndexOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__MapLookupOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ModeOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__SetLookupOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__StrptimeOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__StrftimeOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__DayOfWeekOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__WeekOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__AssumeTimezoneOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__NullOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__VarianceOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__SkewOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__SplitOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__SplitPatternOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__PartitionNthOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__WinsorizeOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__CumulativeOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__PairwiseOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ListFlattenOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__ArraySortOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__SelectKOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__QuantileOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__TDigestOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__Utf8NormalizeOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__RandomOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__RankOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__RankQuantileOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute__PivotWiderOptions(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute_RegisterUdf(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_7pyarrow_8_compute___pyx_defaults(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
/* #### Code section: late_includes ### */
/* #### Code section: module_state ### */
/* SmallCodeConfig */
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif

typedef struct {
  PyObject *__pyx_d;
  PyObject *__pyx_b;
  PyObject *__pyx_cython_runtime;
  PyObject *__pyx_empty_tuple;
  PyObject *__pyx_empty_bytes;
  PyObject *__pyx_empty_unicode;
  PyTypeObject *__pyx_ptype_7cpython_4type_type;
  PyTypeObject *__pyx_ptype_7cpython_4bool_bool;
  PyTypeObject *__pyx_ptype_7cpython_7complex_complex;
  PyTypeObject *__pyx_ptype_7cpython_8datetime_date;
  PyTypeObject *__pyx_ptype_7cpython_8datetime_time;
  PyTypeObject *__pyx_ptype_7cpython_8datetime_datetime;
  PyTypeObject *__pyx_ptype_7cpython_8datetime_timedelta;
  PyTypeObject *__pyx_ptype_7cpython_8datetime_tzinfo;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib__Weakrefable;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_IpcWriteOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_IpcReadOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Message;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_MemoryPool;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_DataType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_ListType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_LargeListType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_ListViewType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_LargeListViewType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_MapType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_FixedSizeListType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_StructType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_DictionaryMemo;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_DictionaryType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_TimestampType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Time32Type;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Time64Type;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_DurationType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Decimal32Type;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Decimal64Type;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Decimal128Type;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Decimal256Type;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_RunEndEncodedType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_BaseExtensionType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_ExtensionType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_FixedShapeTensorType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Bool8Type;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_OpaqueType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_UuidType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_JsonType;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib__Metadata;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_KeyValueMetadata;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Field;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Schema;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Scalar;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_ArrayStatistics;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib__PandasConvertible;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Tensor;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_SparseCSRMatrix;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_SparseCSCMatrix;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_SparseCOOTensor;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_SparseCSFTensor;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_NullArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_BooleanArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_NumericArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_IntegerArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_FloatingPointArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Int8Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_UInt8Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Int16Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_UInt16Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Int32Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_UInt32Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Int64Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_UInt64Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_HalfFloatArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_FloatArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_DoubleArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Decimal32Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Decimal64Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Decimal128Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Decimal256Array;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_StructArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_BaseListArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_ListArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_LargeListArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_ListViewArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_LargeListViewArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_MapArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_FixedSizeListArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_UnionArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_StringArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_BinaryArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_StringViewArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_BinaryViewArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_DictionaryArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_ExtensionArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_MonthDayNanoIntervalArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_ChunkedArray;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib__Tabular;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Table;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_RecordBatch;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Device;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_MemoryManager;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Buffer;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_ResizableBuffer;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_NativeFile;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_BufferedInputStream;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_BufferedOutputStream;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_CompressedInputStream;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_CompressedOutputStream;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib__CRecordBatchWriter;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_RecordBatchReader;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_CacheOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_Codec;
  PyTypeObject *__pyx_ptype_7pyarrow_3lib_StopToken;
  PyObject *__pyx_type_7pyarrow_8_compute_UdfContext;
  PyObject *__pyx_type_7pyarrow_8_compute_FunctionOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__SortOptions;
  PyObject *__pyx_type_7pyarrow_8_compute_Expression;
  PyObject *__pyx_type_7pyarrow_8_compute_Kernel;
  PyObject *__pyx_type_7pyarrow_8_compute_ScalarKernel;
  PyObject *__pyx_type_7pyarrow_8_compute_VectorKernel;
  PyObject *__pyx_type_7pyarrow_8_compute_ScalarAggregateKernel;
  PyObject *__pyx_type_7pyarrow_8_compute_HashAggregateKernel;
  PyObject *__pyx_type_7pyarrow_8_compute_Function;
  PyObject *__pyx_type_7pyarrow_8_compute_ScalarFunction;
  PyObject *__pyx_type_7pyarrow_8_compute_VectorFunction;
  PyObject *__pyx_type_7pyarrow_8_compute_ScalarAggregateFunction;
  PyObject *__pyx_type_7pyarrow_8_compute_HashAggregateFunction;
  PyObject *__pyx_type_7pyarrow_8_compute_MetaFunction;
  PyObject *__pyx_type_7pyarrow_8_compute_FunctionRegistry;
  PyObject *__pyx_type_7pyarrow_8_compute__CastOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ElementWiseAggregateOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__RoundOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__RoundBinaryOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__RoundTemporalOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__RoundToMultipleOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__JoinOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__MatchSubstringOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__PadOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ZeroFillOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__TrimOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ReplaceSubstringOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ExtractRegexOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ExtractRegexSpanOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__SliceOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ListSliceOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ReplaceSliceOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__FilterOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__DictionaryEncodeOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__RunEndEncodeOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__InversePermutationOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ScatterOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__TakeOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__MakeStructOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__StructFieldOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ScalarAggregateOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__CountOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__IndexOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__MapLookupOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ModeOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__SetLookupOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__StrptimeOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__StrftimeOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__DayOfWeekOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__WeekOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__AssumeTimezoneOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__NullOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__VarianceOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__SkewOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__SplitOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__SplitPatternOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__PartitionNthOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__WinsorizeOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__CumulativeOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__PairwiseOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ListFlattenOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__ArraySortOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__SelectKOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__QuantileOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__TDigestOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__Utf8NormalizeOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__RandomOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__RankOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__RankQuantileOptions;
  PyObject *__pyx_type_7pyarrow_8_compute__PivotWiderOptions;
  PyObject *__pyx_type_7pyarrow_8_compute_RegisterUdf;
  PyObject *__pyx_type_7pyarrow_8_compute___pyx_defaults;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_UdfContext;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__SortOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_Expression;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_Kernel;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_ScalarKernel;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_VectorKernel;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_Function;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_ScalarFunction;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_VectorFunction;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_MetaFunction;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_FunctionRegistry;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__CastOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__RoundOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__JoinOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__PadOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__TrimOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__SliceOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ListSliceOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__FilterOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ScatterOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__TakeOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__MakeStructOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__StructFieldOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__CountOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__IndexOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__MapLookupOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ModeOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__SetLookupOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__StrptimeOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__StrftimeOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__WeekOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__NullOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__VarianceOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__SkewOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__SplitOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__CumulativeOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__PairwiseOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__ArraySortOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__SelectKOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__QuantileOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__TDigestOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__RandomOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__RankOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute_RegisterUdf;
  PyTypeObject *__pyx_ptype_7pyarrow_8_compute___pyx_defaults;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop;
  __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values;
  PyObject *__pyx_slice[1];
  PyObject *__pyx_tuple[27];
  PyObject *__pyx_codeobj_tab[286];
  PyObject *__pyx_string_tab[1071];
  PyObject *__pyx_number_tab[10];
/* #### Code section: module_state_contents ### */
/* IterNextPlain.module_state_decls */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
PyObject *__Pyx_GetBuiltinNext_LimitedAPI_cache;
#endif

/* CommonTypesMetaclass.module_state_decls */
PyTypeObject *__pyx_CommonTypesMetaclassType;

/* CachedMethodType.module_state_decls */
#if CYTHON_COMPILING_IN_LIMITED_API
PyObject *__Pyx_CachedMethodType;
#endif

/* CythonFunctionShared.module_state_decls */
PyTypeObject *__pyx_CyFunctionType;

/* CodeObjectCache.module_state_decls */
struct __Pyx_CodeObjectCache __pyx_code_cache;

/* #### Code section: module_state_end ### */
} __pyx_mstatetype;

#if CYTHON_USE_MODULE_STATE
#ifdef __cplusplus
namespace {
extern struct PyModuleDef __pyx_moduledef;
} /* anonymous namespace */
#else
static struct PyModuleDef __pyx_moduledef;
#endif

#define __pyx_mstate_global (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&__pyx_moduledef)))

#define __pyx_m (__Pyx_State_FindModule(&__pyx_moduledef))
#else
static __pyx_mstatetype __pyx_mstate_global_static =
#ifdef __cplusplus
    {};
#else
    {0};
#endif
static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static;
#endif
/* #### Code section: constant_name_defines ### */
#define __pyx_kp_u_ __pyx_string_tab[0]
#define __pyx_kp_u_0 __pyx_string_tab[1]
#define __pyx_kp_u_14_0 __pyx_string_tab[2]
#define __pyx_kp_u_An_Expression_cannot_be_evaluate __pyx_string_tab[3]
#define __pyx_kp_u_Calendar_unit __pyx_string_tab[4]
#define __pyx_kp_u_Cannot_deserialize __pyx_string_tab[5]
#define __pyx_kp_u_Do_not_call __pyx_string_tab[6]
#define __pyx_kp_u_Expected_a_field_reference_as_a __pyx_string_tab[7]
#define __pyx_kp_u_Expression_is_an_abstract_class __pyx_string_tab[8]
#define __pyx_kp_u_Function_doc_must_contain_a_desc __pyx_string_tab[9]
#define __pyx_kp_u_Function_doc_must_contain_a_summ __pyx_string_tab[10]
#define __pyx_kp_u_Function_doc_must_contain_arg_na __pyx_string_tab[11]
#define __pyx_kp_u_Function_was_NULL __pyx_string_tab[12]
#define __pyx_kp_u_Got_unexpected_argument_type __pyx_string_tab[13]
#define __pyx_kp_u_HashAggregateKernel __pyx_string_tab[14]
#define __pyx_kp_u_Kernel_was_NULL __pyx_string_tab[15]
#define __pyx_kp_u_Minimum_number_of_non_null_valu __pyx_string_tab[16]
#define __pyx_kp_u_Must_either_pass_values_for_type __pyx_string_tab[17]
#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[18]
#define __pyx_kp_u_Options_for_cumulative__functio __pyx_string_tab[19]
#define __pyx_kp_u_Options_for_cumulative_sum_func __pyx_string_tab[20]
#define __pyx_kp_u_Options_for_dictionary_encoding __pyx_string_tab[21]
#define __pyx_kp_u_Options_for_element_wise_aggreg __pyx_string_tab[22]
#define __pyx_kp_u_Options_for_inverse_permutation __pyx_string_tab[23]
#define __pyx_kp_u_Options_for_list_array_slicing __pyx_string_tab[24]
#define __pyx_kp_u_Options_for_list_flatten_functi __pyx_string_tab[25]
#define __pyx_kp_u_Options_for_looking_for_a_subst __pyx_string_tab[26]
#define __pyx_kp_u_Options_for_padding_strings_Par __pyx_string_tab[27]
#define __pyx_kp_u_Options_for_pairwise_functions __pyx_string_tab[28]
#define __pyx_kp_u_Options_for_random_generation_P __pyx_string_tab[29]
#define __pyx_kp_u_Options_for_replacing_matched_s __pyx_string_tab[30]
#define __pyx_kp_u_Options_for_replacing_slices_Pa __pyx_string_tab[31]
#define __pyx_kp_u_Options_for_rounding_numbers_Pa __pyx_string_tab[32]
#define __pyx_kp_u_Options_for_rounding_numbers_to __pyx_string_tab[33]
#define __pyx_kp_u_Options_for_rounding_numbers_wh __pyx_string_tab[34]
#define __pyx_kp_u_Options_for_rounding_temporal_v __pyx_string_tab[35]
#define __pyx_kp_u_Options_for_run_end_encoding_Pa __pyx_string_tab[36]
#define __pyx_kp_u_Options_for_scalar_aggregations __pyx_string_tab[37]
#define __pyx_kp_u_Options_for_scatter_function_Pa __pyx_string_tab[38]
#define __pyx_kp_u_Options_for_selecting_with_a_bo __pyx_string_tab[39]
#define __pyx_kp_u_Options_for_slicing_Parameters __pyx_string_tab[40]
#define __pyx_kp_u_Options_for_splitting_on_a_stri __pyx_string_tab[41]
#define __pyx_kp_u_Options_for_splitting_on_whites __pyx_string_tab[42]
#define __pyx_kp_u_Options_for_the_array_sort_indi __pyx_string_tab[43]
#define __pyx_kp_u_Options_for_the_assume_timezone __pyx_string_tab[44]
#define __pyx_kp_u_Options_for_the_binary_join_ele __pyx_string_tab[45]
#define __pyx_kp_u_Options_for_the_cast_function_P __pyx_string_tab[46]
#define __pyx_kp_u_Options_for_the_count_function __pyx_string_tab[47]
#define __pyx_kp_u_Options_for_the_day_of_week_fun __pyx_string_tab[48]
#define __pyx_kp_u_Options_for_the_extract_regex_f __pyx_string_tab[49]
#define __pyx_kp_u_Options_for_the_extract_regex_s __pyx_string_tab[50]
#define __pyx_kp_u_Options_for_the_index_function __pyx_string_tab[51]
#define __pyx_kp_u_Options_for_the_is_in_and_index __pyx_string_tab[52]
#define __pyx_kp_u_Options_for_the_is_null_functio __pyx_string_tab[53]
#define __pyx_kp_u_Options_for_the_make_struct_fun __pyx_string_tab[54]
#define __pyx_kp_u_Options_for_the_map_lookup_func __pyx_string_tab[55]
#define __pyx_kp_u_Options_for_the_mode_function_P __pyx_string_tab[56]
#define __pyx_kp_u_Options_for_the_partition_nth_i __pyx_string_tab[57]
#define __pyx_kp_u_Options_for_the_pivot_wider_fun __pyx_string_tab[58]
#define __pyx_kp_u_Options_for_the_quantile_functi __pyx_string_tab[59]
#define __pyx_kp_u_Options_for_the_rank_function_P __pyx_string_tab[60]
#define __pyx_kp_u_Options_for_the_rank_quantile_f __pyx_string_tab[61]
#define __pyx_kp_u_Options_for_the_skew_and_kurtos __pyx_string_tab[62]
#define __pyx_kp_u_Options_for_the_sort_indices_fu __pyx_string_tab[63]
#define __pyx_kp_u_Options_for_the_strftime_functi __pyx_string_tab[64]
#define __pyx_kp_u_Options_for_the_strptime_functi __pyx_string_tab[65]
#define __pyx_kp_u_Options_for_the_struct_field_fu __pyx_string_tab[66]
#define __pyx_kp_u_Options_for_the_take_and_array __pyx_string_tab[67]
#define __pyx_kp_u_Options_for_the_tdigest_functio __pyx_string_tab[68]
#define __pyx_kp_u_Options_for_the_utf8_normalize __pyx_string_tab[69]
#define __pyx_kp_u_Options_for_the_variance_and_st __pyx_string_tab[70]
#define __pyx_kp_u_Options_for_the_week_function_P __pyx_string_tab[71]
#define __pyx_kp_u_Options_for_the_winsorize_funct __pyx_string_tab[72]
#define __pyx_kp_u_Options_for_top_bottom_k_select __pyx_string_tab[73]
#define __pyx_kp_u_Options_for_trimming_characters __pyx_string_tab[74]
#define __pyx_kp_u_Options_for_utf8_zero_fill_Para __pyx_string_tab[75]
#define __pyx_kp_u_Register_a_user_defined_non_dec __pyx_string_tab[76]
#define __pyx_kp_u_Register_a_user_defined_scalar __pyx_string_tab[77]
#define __pyx_kp_u_Register_a_user_defined_vector __pyx_string_tab[78]
#define __pyx_kp_u_ScalarAggregateKernel __pyx_string_tab[79]
#define __pyx_kp_u_ScalarKernel __pyx_string_tab[80]
#define __pyx_kp_u_Should_either_be_first_last_or_a __pyx_string_tab[81]
#define __pyx_kp_u_Substrait_message_contained_mult __pyx_string_tab[82]
#define __pyx_kp_u_Substrait_message_did_not_contai __pyx_string_tab[83]
#define __pyx_kp_u_The_pyarrow_installation_is_not __pyx_string_tab[84]
#define __pyx_kp_u_Unable_to_get_FieldRef_from_Expr __pyx_string_tab[85]
#define __pyx_kp_u_Unicode_normalization_form __pyx_string_tab[86]
#define __pyx_kp_u_Unknown_Function_Kind __pyx_string_tab[87]
#define __pyx_kp_u_Unsupported_value_for_unexpected __pyx_string_tab[88]
#define __pyx_kp_u_Use_one_of_the_subclasses_inste __pyx_string_tab[89]
#define __pyx_kp_u_VectorKernel __pyx_string_tab[90]
#define __pyx_kp_u_Y_m_dT_H_M_S __pyx_string_tab[91]
#define __pyx_kp_u__10 __pyx_string_tab[92]
#define __pyx_kp_u__2 __pyx_string_tab[93]
#define __pyx_kp_u__3 __pyx_string_tab[94]
#define __pyx_kp_u__4 __pyx_string_tab[95]
#define __pyx_kp_u__5 __pyx_string_tab[96]
#define __pyx_kp_u__6 __pyx_string_tab[97]
#define __pyx_kp_u__7 __pyx_string_tab[98]
#define __pyx_kp_u__8 __pyx_string_tab[99]
#define __pyx_kp_u__9 __pyx_string_tab[100]
#define __pyx_kp_u_add_note __pyx_string_tab[101]
#define __pyx_kp_u_ambiguous_timestamp_handling __pyx_string_tab[102]
#define __pyx_kp_u_arity __pyx_string_tab[103]
#define __pyx_kp_u_arrow_compute_Function_name __pyx_string_tab[104]
#define __pyx_kp_u_biased_bool_default_True_Whethe __pyx_string_tab[105]
#define __pyx_kp_u_count_mode __pyx_string_tab[106]
#define __pyx_kp_u_disable __pyx_string_tab[107]
#define __pyx_kp_u_enable __pyx_string_tab[108]
#define __pyx_kp_u_for_compute_function __pyx_string_tab[109]
#define __pyx_kp_u_func_must_be_a_callable __pyx_string_tab[110]
#define __pyx_kp_u_gc __pyx_string_tab[111]
#define __pyx_kp_u_in_types_must_be_a_dictionary_of __pyx_string_tab[112]
#define __pyx_kp_u_initializer_should_be_system_an __pyx_string_tab[113]
#define __pyx_kp_u_instead __pyx_string_tab[114]
#define __pyx_kp_u_is_an_abstract_class_thus_canno __pyx_string_tab[115]
#define __pyx_kp_u_is_not_a_valid __pyx_string_tab[116]
#define __pyx_kp_u_isenabled __pyx_string_tab[117]
#define __pyx_kp_u_kind __pyx_string_tab[118]
#define __pyx_kp_u_min_count_int_default __pyx_string_tab[119]
#define __pyx_kp_u_multiple_type_for_RoundToMultipl __pyx_string_tab[120]
#define __pyx_kp_u_nested_field_reference_should_be __pyx_string_tab[121]
#define __pyx_kp_u_nonexistent_timestamp_handling __pyx_string_tab[122]
#define __pyx_kp_u_null_encoding_2 __pyx_string_tab[123]
#define __pyx_kp_u_null_handling_2 __pyx_string_tab[124]
#define __pyx_kp_u_null_placement __pyx_string_tab[125]
#define __pyx_kp_u_null_selection_behavior_2 __pyx_string_tab[126]
#define __pyx_kp_u_num_kernels __pyx_string_tab[127]
#define __pyx_kp_u_only_other_expressions_allowed_a __pyx_string_tab[128]
#define __pyx_kp_u_pyarrow__compute_pyx __pyx_string_tab[129]
#define __pyx_kp_u_pyarrow_compute __pyx_string_tab[130]
#define __pyx_kp_u_quantile_interpolation __pyx_string_tab[131]
#define __pyx_kp_u_register_aggregate_function_line __pyx_string_tab[132]
#define __pyx_kp_u_register_scalar_function_line_30 __pyx_string_tab[133]
#define __pyx_kp_u_register_vector_function_line_31 __pyx_string_tab[134]
#define __pyx_kp_u_round_mode __pyx_string_tab[135]
#define __pyx_kp_u_s_constructor_directly __pyx_string_tab[136]
#define __pyx_kp_u_self_c_context_cannot_be_convert __pyx_string_tab[137]
#define __pyx_kp_u_self_kernel_cannot_be_converted __pyx_string_tab[138]
#define __pyx_kp_u_self_options_self_wrapped_cannot __pyx_string_tab[139]
#define __pyx_kp_u_self_register_func_cannot_be_con __pyx_string_tab[140]
#define __pyx_kp_u_self_registry_cannot_be_converte __pyx_string_tab[141]
#define __pyx_kp_u_self_wrapped_cannot_be_converted __pyx_string_tab[142]
#define __pyx_kp_u_skip_nulls_bool_default_True_Whe __pyx_string_tab[143]
#define __pyx_kp_u_sort_order __pyx_string_tab[144]
#define __pyx_kp_u_start_type_for_CumulativeOption __pyx_string_tab[145]
#define __pyx_kp_u_time_unit __pyx_string_tab[146]
#define __pyx_kp_u_tree_fragment __pyx_string_tab[147]
#define __pyx_kp_u_value_set_2 __pyx_string_tab[148]
#define __pyx_n_u_ArraySortOptions __pyx_string_tab[149]
#define __pyx_n_u_ArraySortOptions_2 __pyx_string_tab[150]
#define __pyx_n_u_ArraySortOptions___init __pyx_string_tab[151]
#define __pyx_n_u_ArraySortOptions___reduce_cytho __pyx_string_tab[152]
#define __pyx_n_u_ArraySortOptions___setstate_cyt __pyx_string_tab[153]
#define __pyx_n_u_ArraySortOptions__set_options __pyx_string_tab[154]
#define __pyx_n_u_ArrowInvalid __pyx_string_tab[155]
#define __pyx_n_u_AssumeTimezoneOptions __pyx_string_tab[156]
#define __pyx_n_u_AssumeTimezoneOptions_2 __pyx_string_tab[157]
#define __pyx_n_u_AssumeTimezoneOptions___init __pyx_string_tab[158]
#define __pyx_n_u_AssumeTimezoneOptions___reduce __pyx_string_tab[159]
#define __pyx_n_u_AssumeTimezoneOptions___setstat __pyx_string_tab[160]
#define __pyx_n_u_AssumeTimezoneOptions__set_opti __pyx_string_tab[161]
#define __pyx_n_u_BoundExpressions __pyx_string_tab[162]
#define __pyx_n_u_C __pyx_string_tab[163]
#define __pyx_n_u_CastOptions __pyx_string_tab[164]
#define __pyx_n_u_CastOptions_2 __pyx_string_tab[165]
#define __pyx_n_u_CastOptions___init __pyx_string_tab[166]
#define __pyx_n_u_CastOptions___reduce_cython __pyx_string_tab[167]
#define __pyx_n_u_CastOptions___setstate_cython __pyx_string_tab[168]
#define __pyx_n_u_CastOptions__set_options __pyx_string_tab[169]
#define __pyx_n_u_CastOptions__set_safe __pyx_string_tab[170]
#define __pyx_n_u_CastOptions__set_type __pyx_string_tab[171]
#define __pyx_n_u_CastOptions__set_unsafe __pyx_string_tab[172]
#define __pyx_n_u_CastOptions_is_safe __pyx_string_tab[173]
#define __pyx_n_u_CastOptions_safe __pyx_string_tab[174]
#define __pyx_n_u_CastOptions_unsafe __pyx_string_tab[175]
#define __pyx_n_u_CountOptions __pyx_string_tab[176]
#define __pyx_n_u_CountOptions_2 __pyx_string_tab[177]
#define __pyx_n_u_CountOptions___init __pyx_string_tab[178]
#define __pyx_n_u_CountOptions___reduce_cython __pyx_string_tab[179]
#define __pyx_n_u_CountOptions___setstate_cython __pyx_string_tab[180]
#define __pyx_n_u_CountOptions__set_options __pyx_string_tab[181]
#define __pyx_n_u_CumulativeOptions __pyx_string_tab[182]
#define __pyx_n_u_CumulativeOptions_2 __pyx_string_tab[183]
#define __pyx_n_u_CumulativeOptions___init __pyx_string_tab[184]
#define __pyx_n_u_CumulativeOptions___reduce_cyth __pyx_string_tab[185]
#define __pyx_n_u_CumulativeOptions___setstate_cy __pyx_string_tab[186]
#define __pyx_n_u_CumulativeOptions__set_options __pyx_string_tab[187]
#define __pyx_n_u_CumulativeSumOptions __pyx_string_tab[188]
#define __pyx_n_u_CumulativeSumOptions___init __pyx_string_tab[189]
#define __pyx_n_u_DEPR_MSG __pyx_string_tab[190]
#define __pyx_n_u_DayOfWeekOptions __pyx_string_tab[191]
#define __pyx_n_u_DayOfWeekOptions_2 __pyx_string_tab[192]
#define __pyx_n_u_DayOfWeekOptions___init __pyx_string_tab[193]
#define __pyx_n_u_DayOfWeekOptions___reduce_cytho __pyx_string_tab[194]
#define __pyx_n_u_DayOfWeekOptions___setstate_cyt __pyx_string_tab[195]
#define __pyx_n_u_DayOfWeekOptions__set_options __pyx_string_tab[196]
#define __pyx_n_u_DictionaryEncodeOptions __pyx_string_tab[197]
#define __pyx_n_u_DictionaryEncodeOptions_2 __pyx_string_tab[198]
#define __pyx_n_u_DictionaryEncodeOptions___init __pyx_string_tab[199]
#define __pyx_n_u_DictionaryEncodeOptions___reduc __pyx_string_tab[200]
#define __pyx_n_u_DictionaryEncodeOptions___setst __pyx_string_tab[201]
#define __pyx_n_u_DictionaryEncodeOptions__set_op __pyx_string_tab[202]
#define __pyx_n_u_ElementWiseAggregateOptions __pyx_string_tab[203]
#define __pyx_n_u_ElementWiseAggregateOptions_2 __pyx_string_tab[204]
#define __pyx_n_u_ElementWiseAggregateOptions___in __pyx_string_tab[205]
#define __pyx_n_u_ElementWiseAggregateOptions___r __pyx_string_tab[206]
#define __pyx_n_u_ElementWiseAggregateOptions___s __pyx_string_tab[207]
#define __pyx_n_u_ElementWiseAggregateOptions__se __pyx_string_tab[208]
#define __pyx_n_u_Expression __pyx_string_tab[209]
#define __pyx_n_u_Expression___reduce __pyx_string_tab[210]
#define __pyx_n_u_Expression__call __pyx_string_tab[211]
#define __pyx_n_u_Expression__deserialize __pyx_string_tab[212]
#define __pyx_n_u_Expression__field __pyx_string_tab[213]
#define __pyx_n_u_Expression__nested_field __pyx_string_tab[214]
#define __pyx_n_u_Expression__scalar __pyx_string_tab[215]
#define __pyx_n_u_Expression_cast __pyx_string_tab[216]
#define __pyx_n_u_Expression_equals __pyx_string_tab[217]
#define __pyx_n_u_Expression_from_substrait __pyx_string_tab[218]
#define __pyx_n_u_Expression_is_nan __pyx_string_tab[219]
#define __pyx_n_u_Expression_is_null __pyx_string_tab[220]
#define __pyx_n_u_Expression_is_valid __pyx_string_tab[221]
#define __pyx_n_u_Expression_isin __pyx_string_tab[222]
#define __pyx_n_u_Expression_to_substrait __pyx_string_tab[223]
#define __pyx_n_u_ExtractRegexOptions __pyx_string_tab[224]
#define __pyx_n_u_ExtractRegexOptions_2 __pyx_string_tab[225]
#define __pyx_n_u_ExtractRegexOptions___init __pyx_string_tab[226]
#define __pyx_n_u_ExtractRegexOptions___reduce_cy __pyx_string_tab[227]
#define __pyx_n_u_ExtractRegexOptions___setstate __pyx_string_tab[228]
#define __pyx_n_u_ExtractRegexOptions__set_option __pyx_string_tab[229]
#define __pyx_n_u_ExtractRegexSpanOptions __pyx_string_tab[230]
#define __pyx_n_u_ExtractRegexSpanOptions_2 __pyx_string_tab[231]
#define __pyx_n_u_ExtractRegexSpanOptions___init __pyx_string_tab[232]
#define __pyx_n_u_ExtractRegexSpanOptions___reduc __pyx_string_tab[233]
#define __pyx_n_u_ExtractRegexSpanOptions___setst __pyx_string_tab[234]
#define __pyx_n_u_ExtractRegexSpanOptions__set_op __pyx_string_tab[235]
#define __pyx_n_u_FilterOptions __pyx_string_tab[236]
#define __pyx_n_u_FilterOptions_2 __pyx_string_tab[237]
#define __pyx_n_u_FilterOptions___init __pyx_string_tab[238]
#define __pyx_n_u_FilterOptions___reduce_cython __pyx_string_tab[239]
#define __pyx_n_u_FilterOptions___setstate_cython __pyx_string_tab[240]
#define __pyx_n_u_FilterOptions__set_options __pyx_string_tab[241]
#define __pyx_n_u_Function __pyx_string_tab[242]
#define __pyx_n_u_FunctionDoc __pyx_string_tab[243]
#define __pyx_n_u_FunctionOptions __pyx_string_tab[244]
#define __pyx_n_u_FunctionOptions___reduce_cython __pyx_string_tab[245]
#define __pyx_n_u_FunctionOptions___setstate_cytho __pyx_string_tab[246]
#define __pyx_n_u_FunctionOptions_deserialize __pyx_string_tab[247]
#define __pyx_n_u_FunctionOptions_serialize __pyx_string_tab[248]
#define __pyx_n_u_FunctionRegistry __pyx_string_tab[249]
#define __pyx_n_u_FunctionRegistry___reduce_cython __pyx_string_tab[250]
#define __pyx_n_u_FunctionRegistry___setstate_cyth __pyx_string_tab[251]
#define __pyx_n_u_FunctionRegistry_get_function __pyx_string_tab[252]
#define __pyx_n_u_FunctionRegistry_list_functions __pyx_string_tab[253]
#define __pyx_n_u_Function___reduce __pyx_string_tab[254]
#define __pyx_n_u_Function_call __pyx_string_tab[255]
#define __pyx_n_u_HashAggregateFunction __pyx_string_tab[256]
#define __pyx_n_u_HashAggregateKernel_2 __pyx_string_tab[257]
#define __pyx_n_u_HashAggregateKernel___reduce_cyt __pyx_string_tab[258]
#define __pyx_n_u_HashAggregateKernel___setstate_c __pyx_string_tab[259]
#define __pyx_n_u_IndexOptions __pyx_string_tab[260]
#define __pyx_n_u_IndexOptions_2 __pyx_string_tab[261]
#define __pyx_n_u_IndexOptions___init __pyx_string_tab[262]
#define __pyx_n_u_IndexOptions___reduce_cython __pyx_string_tab[263]
#define __pyx_n_u_IndexOptions___setstate_cython __pyx_string_tab[264]
#define __pyx_n_u_IndexOptions__set_options __pyx_string_tab[265]
#define __pyx_n_u_InversePermutationOptions __pyx_string_tab[266]
#define __pyx_n_u_InversePermutationOptions_2 __pyx_string_tab[267]
#define __pyx_n_u_InversePermutationOptions___init __pyx_string_tab[268]
#define __pyx_n_u_InversePermutationOptions___red __pyx_string_tab[269]
#define __pyx_n_u_InversePermutationOptions___set __pyx_string_tab[270]
#define __pyx_n_u_InversePermutationOptions__set __pyx_string_tab[271]
#define __pyx_n_u_JoinOptions __pyx_string_tab[272]
#define __pyx_n_u_JoinOptions_2 __pyx_string_tab[273]
#define __pyx_n_u_JoinOptions___init __pyx_string_tab[274]
#define __pyx_n_u_JoinOptions___reduce_cython __pyx_string_tab[275]
#define __pyx_n_u_JoinOptions___setstate_cython __pyx_string_tab[276]
#define __pyx_n_u_JoinOptions__set_options __pyx_string_tab[277]
#define __pyx_n_u_Kernel __pyx_string_tab[278]
#define __pyx_n_u_Kernel___reduce_cython __pyx_string_tab[279]
#define __pyx_n_u_Kernel___setstate_cython __pyx_string_tab[280]
#define __pyx_n_u_ListFlattenOptions __pyx_string_tab[281]
#define __pyx_n_u_ListFlattenOptions_2 __pyx_string_tab[282]
#define __pyx_n_u_ListFlattenOptions___init __pyx_string_tab[283]
#define __pyx_n_u_ListFlattenOptions___reduce_cyt __pyx_string_tab[284]
#define __pyx_n_u_ListFlattenOptions___setstate_c __pyx_string_tab[285]
#define __pyx_n_u_ListFlattenOptions__set_options __pyx_string_tab[286]
#define __pyx_n_u_ListSliceOptions __pyx_string_tab[287]
#define __pyx_n_u_ListSliceOptions_2 __pyx_string_tab[288]
#define __pyx_n_u_ListSliceOptions___init __pyx_string_tab[289]
#define __pyx_n_u_ListSliceOptions___reduce_cytho __pyx_string_tab[290]
#define __pyx_n_u_ListSliceOptions___setstate_cyt __pyx_string_tab[291]
#define __pyx_n_u_ListSliceOptions__set_options __pyx_string_tab[292]
#define __pyx_n_u_MakeStructOptions __pyx_string_tab[293]
#define __pyx_n_u_MakeStructOptions_2 __pyx_string_tab[294]
#define __pyx_n_u_MakeStructOptions___init __pyx_string_tab[295]
#define __pyx_n_u_MakeStructOptions___reduce_cyth __pyx_string_tab[296]
#define __pyx_n_u_MakeStructOptions___setstate_cy __pyx_string_tab[297]
#define __pyx_n_u_MakeStructOptions__set_options __pyx_string_tab[298]
#define __pyx_n_u_MapLookupOptions __pyx_string_tab[299]
#define __pyx_n_u_MapLookupOptions_2 __pyx_string_tab[300]
#define __pyx_n_u_MapLookupOptions___init __pyx_string_tab[301]
#define __pyx_n_u_MapLookupOptions___reduce_cytho __pyx_string_tab[302]
#define __pyx_n_u_MapLookupOptions___setstate_cyt __pyx_string_tab[303]
#define __pyx_n_u_MapLookupOptions__set_options __pyx_string_tab[304]
#define __pyx_n_u_MatchSubstringOptions __pyx_string_tab[305]
#define __pyx_n_u_MatchSubstringOptions_2 __pyx_string_tab[306]
#define __pyx_n_u_MatchSubstringOptions___init __pyx_string_tab[307]
#define __pyx_n_u_MatchSubstringOptions___reduce __pyx_string_tab[308]
#define __pyx_n_u_MatchSubstringOptions___setstat __pyx_string_tab[309]
#define __pyx_n_u_MatchSubstringOptions__set_opti __pyx_string_tab[310]
#define __pyx_n_u_MetaFunction __pyx_string_tab[311]
#define __pyx_n_u_ModeOptions __pyx_string_tab[312]
#define __pyx_n_u_ModeOptions_2 __pyx_string_tab[313]
#define __pyx_n_u_ModeOptions___init __pyx_string_tab[314]
#define __pyx_n_u_ModeOptions___reduce_cython __pyx_string_tab[315]
#define __pyx_n_u_ModeOptions___setstate_cython __pyx_string_tab[316]
#define __pyx_n_u_ModeOptions__set_options __pyx_string_tab[317]
#define __pyx_n_u_NFC __pyx_string_tab[318]
#define __pyx_n_u_NFD __pyx_string_tab[319]
#define __pyx_n_u_NFKC __pyx_string_tab[320]
#define __pyx_n_u_NFKD __pyx_string_tab[321]
#define __pyx_n_u_NullOptions __pyx_string_tab[322]
#define __pyx_n_u_NullOptions_2 __pyx_string_tab[323]
#define __pyx_n_u_NullOptions___init __pyx_string_tab[324]
#define __pyx_n_u_NullOptions___reduce_cython __pyx_string_tab[325]
#define __pyx_n_u_NullOptions___setstate_cython __pyx_string_tab[326]
#define __pyx_n_u_NullOptions__set_options __pyx_string_tab[327]
#define __pyx_n_u_PadOptions __pyx_string_tab[328]
#define __pyx_n_u_PadOptions_2 __pyx_string_tab[329]
#define __pyx_n_u_PadOptions___init __pyx_string_tab[330]
#define __pyx_n_u_PadOptions___reduce_cython __pyx_string_tab[331]
#define __pyx_n_u_PadOptions___setstate_cython __pyx_string_tab[332]
#define __pyx_n_u_PadOptions__set_options __pyx_string_tab[333]
#define __pyx_n_u_PairwiseOptions __pyx_string_tab[334]
#define __pyx_n_u_PairwiseOptions_2 __pyx_string_tab[335]
#define __pyx_n_u_PairwiseOptions___init __pyx_string_tab[336]
#define __pyx_n_u_PairwiseOptions___reduce_cython __pyx_string_tab[337]
#define __pyx_n_u_PairwiseOptions___setstate_cyth __pyx_string_tab[338]
#define __pyx_n_u_PairwiseOptions__set_options __pyx_string_tab[339]
#define __pyx_n_u_PartitionNthOptions __pyx_string_tab[340]
#define __pyx_n_u_PartitionNthOptions_2 __pyx_string_tab[341]
#define __pyx_n_u_PartitionNthOptions___init __pyx_string_tab[342]
#define __pyx_n_u_PartitionNthOptions___reduce_cy __pyx_string_tab[343]
#define __pyx_n_u_PartitionNthOptions___setstate __pyx_string_tab[344]
#define __pyx_n_u_PartitionNthOptions__set_option __pyx_string_tab[345]
#define __pyx_n_u_PivotWiderOptions __pyx_string_tab[346]
#define __pyx_n_u_PivotWiderOptions_2 __pyx_string_tab[347]
#define __pyx_n_u_PivotWiderOptions___init __pyx_string_tab[348]
#define __pyx_n_u_PivotWiderOptions___reduce_cyth __pyx_string_tab[349]
#define __pyx_n_u_PivotWiderOptions___setstate_cy __pyx_string_tab[350]
#define __pyx_n_u_PivotWiderOptions__set_options __pyx_string_tab[351]
#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[352]
#define __pyx_n_u_QuantileOptions __pyx_string_tab[353]
#define __pyx_n_u_QuantileOptions_2 __pyx_string_tab[354]
#define __pyx_n_u_QuantileOptions___init __pyx_string_tab[355]
#define __pyx_n_u_QuantileOptions___reduce_cython __pyx_string_tab[356]
#define __pyx_n_u_QuantileOptions___setstate_cyth __pyx_string_tab[357]
#define __pyx_n_u_QuantileOptions__set_options __pyx_string_tab[358]
#define __pyx_n_u_RandomOptions __pyx_string_tab[359]
#define __pyx_n_u_RandomOptions_2 __pyx_string_tab[360]
#define __pyx_n_u_RandomOptions___init __pyx_string_tab[361]
#define __pyx_n_u_RandomOptions___reduce_cython __pyx_string_tab[362]
#define __pyx_n_u_RandomOptions___setstate_cython __pyx_string_tab[363]
#define __pyx_n_u_RandomOptions__set_options __pyx_string_tab[364]
#define __pyx_n_u_RankOptions __pyx_string_tab[365]
#define __pyx_n_u_RankOptions_2 __pyx_string_tab[366]
#define __pyx_n_u_RankOptions___init __pyx_string_tab[367]
#define __pyx_n_u_RankOptions___reduce_cython __pyx_string_tab[368]
#define __pyx_n_u_RankOptions___setstate_cython __pyx_string_tab[369]
#define __pyx_n_u_RankOptions__set_options __pyx_string_tab[370]
#define __pyx_n_u_RankQuantileOptions __pyx_string_tab[371]
#define __pyx_n_u_RankQuantileOptions_2 __pyx_string_tab[372]
#define __pyx_n_u_RankQuantileOptions___init __pyx_string_tab[373]
#define __pyx_n_u_RankQuantileOptions___reduce_cy __pyx_string_tab[374]
#define __pyx_n_u_RankQuantileOptions___setstate __pyx_string_tab[375]
#define __pyx_n_u_RankQuantileOptions__set_option __pyx_string_tab[376]
#define __pyx_n_u_RegisterUdf __pyx_string_tab[377]
#define __pyx_n_u_RegisterUdf___reduce_cython __pyx_string_tab[378]
#define __pyx_n_u_RegisterUdf___setstate_cython __pyx_string_tab[379]
#define __pyx_n_u_ReplaceSliceOptions __pyx_string_tab[380]
#define __pyx_n_u_ReplaceSliceOptions_2 __pyx_string_tab[381]
#define __pyx_n_u_ReplaceSliceOptions___init __pyx_string_tab[382]
#define __pyx_n_u_ReplaceSliceOptions___reduce_cy __pyx_string_tab[383]
#define __pyx_n_u_ReplaceSliceOptions___setstate __pyx_string_tab[384]
#define __pyx_n_u_ReplaceSliceOptions__set_option __pyx_string_tab[385]
#define __pyx_n_u_ReplaceSubstringOptions __pyx_string_tab[386]
#define __pyx_n_u_ReplaceSubstringOptions_2 __pyx_string_tab[387]
#define __pyx_n_u_ReplaceSubstringOptions___init __pyx_string_tab[388]
#define __pyx_n_u_ReplaceSubstringOptions___reduc __pyx_string_tab[389]
#define __pyx_n_u_ReplaceSubstringOptions___setst __pyx_string_tab[390]
#define __pyx_n_u_ReplaceSubstringOptions__set_op __pyx_string_tab[391]
#define __pyx_n_u_RoundBinaryOptions __pyx_string_tab[392]
#define __pyx_n_u_RoundBinaryOptions_2 __pyx_string_tab[393]
#define __pyx_n_u_RoundBinaryOptions___init __pyx_string_tab[394]
#define __pyx_n_u_RoundBinaryOptions___reduce_cyt __pyx_string_tab[395]
#define __pyx_n_u_RoundBinaryOptions___setstate_c __pyx_string_tab[396]
#define __pyx_n_u_RoundBinaryOptions__set_options __pyx_string_tab[397]
#define __pyx_n_u_RoundOptions __pyx_string_tab[398]
#define __pyx_n_u_RoundOptions_2 __pyx_string_tab[399]
#define __pyx_n_u_RoundOptions___init __pyx_string_tab[400]
#define __pyx_n_u_RoundOptions___reduce_cython __pyx_string_tab[401]
#define __pyx_n_u_RoundOptions___setstate_cython __pyx_string_tab[402]
#define __pyx_n_u_RoundOptions__set_options __pyx_string_tab[403]
#define __pyx_n_u_RoundTemporalOptions __pyx_string_tab[404]
#define __pyx_n_u_RoundTemporalOptions_2 __pyx_string_tab[405]
#define __pyx_n_u_RoundTemporalOptions___init __pyx_string_tab[406]
#define __pyx_n_u_RoundTemporalOptions___reduce_c __pyx_string_tab[407]
#define __pyx_n_u_RoundTemporalOptions___setstate __pyx_string_tab[408]
#define __pyx_n_u_RoundTemporalOptions__set_optio __pyx_string_tab[409]
#define __pyx_n_u_RoundToMultipleOptions __pyx_string_tab[410]
#define __pyx_n_u_RoundToMultipleOptions_2 __pyx_string_tab[411]
#define __pyx_n_u_RoundToMultipleOptions___init __pyx_string_tab[412]
#define __pyx_n_u_RoundToMultipleOptions___reduce __pyx_string_tab[413]
#define __pyx_n_u_RoundToMultipleOptions___setsta __pyx_string_tab[414]
#define __pyx_n_u_RoundToMultipleOptions__set_opt __pyx_string_tab[415]
#define __pyx_n_u_RunEndEncodeOptions __pyx_string_tab[416]
#define __pyx_n_u_RunEndEncodeOptions_2 __pyx_string_tab[417]
#define __pyx_n_u_RunEndEncodeOptions___init __pyx_string_tab[418]
#define __pyx_n_u_RunEndEncodeOptions___reduce_cy __pyx_string_tab[419]
#define __pyx_n_u_RunEndEncodeOptions___setstate __pyx_string_tab[420]
#define __pyx_n_u_RunEndEncodeOptions__set_option __pyx_string_tab[421]
#define __pyx_n_u_SUPPORTED_INPUT_ARR_TYPES __pyx_string_tab[422]
#define __pyx_n_u_Scalar __pyx_string_tab[423]
#define __pyx_n_u_ScalarAggregateFunction __pyx_string_tab[424]
#define __pyx_n_u_ScalarAggregateKernel_2 __pyx_string_tab[425]
#define __pyx_n_u_ScalarAggregateKernel___reduce_c __pyx_string_tab[426]
#define __pyx_n_u_ScalarAggregateKernel___setstate __pyx_string_tab[427]
#define __pyx_n_u_ScalarAggregateOptions __pyx_string_tab[428]
#define __pyx_n_u_ScalarAggregateOptions_2 __pyx_string_tab[429]
#define __pyx_n_u_ScalarAggregateOptions___init __pyx_string_tab[430]
#define __pyx_n_u_ScalarAggregateOptions___reduce __pyx_string_tab[431]
#define __pyx_n_u_ScalarAggregateOptions___setsta __pyx_string_tab[432]
#define __pyx_n_u_ScalarAggregateOptions__set_opt __pyx_string_tab[433]
#define __pyx_n_u_ScalarFunction __pyx_string_tab[434]
#define __pyx_n_u_ScalarKernel_2 __pyx_string_tab[435]
#define __pyx_n_u_ScalarKernel___reduce_cython __pyx_string_tab[436]
#define __pyx_n_u_ScalarKernel___setstate_cython __pyx_string_tab[437]
#define __pyx_n_u_ScatterOptions __pyx_string_tab[438]
#define __pyx_n_u_ScatterOptions_2 __pyx_string_tab[439]
#define __pyx_n_u_ScatterOptions___init __pyx_string_tab[440]
#define __pyx_n_u_ScatterOptions___reduce_cython __pyx_string_tab[441]
#define __pyx_n_u_ScatterOptions___setstate_cytho __pyx_string_tab[442]
#define __pyx_n_u_ScatterOptions__set_options __pyx_string_tab[443]
#define __pyx_n_u_SelectKOptions __pyx_string_tab[444]
#define __pyx_n_u_SelectKOptions_2 __pyx_string_tab[445]
#define __pyx_n_u_SelectKOptions___init __pyx_string_tab[446]
#define __pyx_n_u_SelectKOptions___reduce_cython __pyx_string_tab[447]
#define __pyx_n_u_SelectKOptions___setstate_cytho __pyx_string_tab[448]
#define __pyx_n_u_SelectKOptions__set_options __pyx_string_tab[449]
#define __pyx_n_u_SetLookupOptions __pyx_string_tab[450]
#define __pyx_n_u_SetLookupOptions_2 __pyx_string_tab[451]
#define __pyx_n_u_SetLookupOptions___init __pyx_string_tab[452]
#define __pyx_n_u_SetLookupOptions___reduce_cytho __pyx_string_tab[453]
#define __pyx_n_u_SetLookupOptions___setstate_cyt __pyx_string_tab[454]
#define __pyx_n_u_SetLookupOptions__set_options __pyx_string_tab[455]
#define __pyx_n_u_SkewOptions __pyx_string_tab[456]
#define __pyx_n_u_SkewOptions_2 __pyx_string_tab[457]
#define __pyx_n_u_SkewOptions___init __pyx_string_tab[458]
#define __pyx_n_u_SkewOptions___reduce_cython __pyx_string_tab[459]
#define __pyx_n_u_SkewOptions___setstate_cython __pyx_string_tab[460]
#define __pyx_n_u_SkewOptions__set_options __pyx_string_tab[461]
#define __pyx_n_u_SliceOptions __pyx_string_tab[462]
#define __pyx_n_u_SliceOptions_2 __pyx_string_tab[463]
#define __pyx_n_u_SliceOptions___init __pyx_string_tab[464]
#define __pyx_n_u_SliceOptions___reduce_cython __pyx_string_tab[465]
#define __pyx_n_u_SliceOptions___setstate_cython __pyx_string_tab[466]
#define __pyx_n_u_SliceOptions__set_options __pyx_string_tab[467]
#define __pyx_n_u_SortOptions __pyx_string_tab[468]
#define __pyx_n_u_SortOptions_2 __pyx_string_tab[469]
#define __pyx_n_u_SortOptions___init __pyx_string_tab[470]
#define __pyx_n_u_SortOptions___reduce_cython __pyx_string_tab[471]
#define __pyx_n_u_SortOptions___setstate_cython __pyx_string_tab[472]
#define __pyx_n_u_SortOptions__set_options __pyx_string_tab[473]
#define __pyx_n_u_SplitOptions __pyx_string_tab[474]
#define __pyx_n_u_SplitOptions_2 __pyx_string_tab[475]
#define __pyx_n_u_SplitOptions___init __pyx_string_tab[476]
#define __pyx_n_u_SplitOptions___reduce_cython __pyx_string_tab[477]
#define __pyx_n_u_SplitOptions___setstate_cython __pyx_string_tab[478]
#define __pyx_n_u_SplitOptions__set_options __pyx_string_tab[479]
#define __pyx_n_u_SplitPatternOptions __pyx_string_tab[480]
#define __pyx_n_u_SplitPatternOptions_2 __pyx_string_tab[481]
#define __pyx_n_u_SplitPatternOptions___init __pyx_string_tab[482]
#define __pyx_n_u_SplitPatternOptions___reduce_cy __pyx_string_tab[483]
#define __pyx_n_u_SplitPatternOptions___setstate __pyx_string_tab[484]
#define __pyx_n_u_SplitPatternOptions__set_option __pyx_string_tab[485]
#define __pyx_n_u_StrftimeOptions __pyx_string_tab[486]
#define __pyx_n_u_StrftimeOptions_2 __pyx_string_tab[487]
#define __pyx_n_u_StrftimeOptions___init __pyx_string_tab[488]
#define __pyx_n_u_StrftimeOptions___reduce_cython __pyx_string_tab[489]
#define __pyx_n_u_StrftimeOptions___setstate_cyth __pyx_string_tab[490]
#define __pyx_n_u_StrftimeOptions__set_options __pyx_string_tab[491]
#define __pyx_n_u_StrptimeOptions __pyx_string_tab[492]
#define __pyx_n_u_StrptimeOptions_2 __pyx_string_tab[493]
#define __pyx_n_u_StrptimeOptions___init __pyx_string_tab[494]
#define __pyx_n_u_StrptimeOptions___reduce_cython __pyx_string_tab[495]
#define __pyx_n_u_StrptimeOptions___setstate_cyth __pyx_string_tab[496]
#define __pyx_n_u_StrptimeOptions__set_options __pyx_string_tab[497]
#define __pyx_n_u_StructFieldOptions __pyx_string_tab[498]
#define __pyx_n_u_StructFieldOptions_2 __pyx_string_tab[499]
#define __pyx_n_u_StructFieldOptions___init __pyx_string_tab[500]
#define __pyx_n_u_StructFieldOptions___reduce_cyt __pyx_string_tab[501]
#define __pyx_n_u_StructFieldOptions___setstate_c __pyx_string_tab[502]
#define __pyx_n_u_StructFieldOptions__set_options __pyx_string_tab[503]
#define __pyx_n_u_TDigestOptions __pyx_string_tab[504]
#define __pyx_n_u_TDigestOptions_2 __pyx_string_tab[505]
#define __pyx_n_u_TDigestOptions___init __pyx_string_tab[506]
#define __pyx_n_u_TDigestOptions___reduce_cython __pyx_string_tab[507]
#define __pyx_n_u_TDigestOptions___setstate_cytho __pyx_string_tab[508]
#define __pyx_n_u_TDigestOptions__set_options __pyx_string_tab[509]
#define __pyx_n_u_TakeOptions __pyx_string_tab[510]
#define __pyx_n_u_TakeOptions_2 __pyx_string_tab[511]
#define __pyx_n_u_TakeOptions___init __pyx_string_tab[512]
#define __pyx_n_u_TakeOptions___reduce_cython __pyx_string_tab[513]
#define __pyx_n_u_TakeOptions___setstate_cython __pyx_string_tab[514]
#define __pyx_n_u_TakeOptions__set_options __pyx_string_tab[515]
#define __pyx_n_u_TrimOptions __pyx_string_tab[516]
#define __pyx_n_u_TrimOptions_2 __pyx_string_tab[517]
#define __pyx_n_u_TrimOptions___init __pyx_string_tab[518]
#define __pyx_n_u_TrimOptions___reduce_cython __pyx_string_tab[519]
#define __pyx_n_u_TrimOptions___setstate_cython __pyx_string_tab[520]
#define __pyx_n_u_TrimOptions__set_options __pyx_string_tab[521]
#define __pyx_n_u_UdfContext __pyx_string_tab[522]
#define __pyx_n_u_UdfContext___reduce_cython __pyx_string_tab[523]
#define __pyx_n_u_UdfContext___setstate_cython __pyx_string_tab[524]
#define __pyx_n_u_Utf8NormalizeOptions __pyx_string_tab[525]
#define __pyx_n_u_Utf8NormalizeOptions_2 __pyx_string_tab[526]
#define __pyx_n_u_Utf8NormalizeOptions___init __pyx_string_tab[527]
#define __pyx_n_u_Utf8NormalizeOptions___reduce_c __pyx_string_tab[528]
#define __pyx_n_u_Utf8NormalizeOptions___setstate __pyx_string_tab[529]
#define __pyx_n_u_Utf8NormalizeOptions__set_optio __pyx_string_tab[530]
#define __pyx_n_u_VarianceOptions __pyx_string_tab[531]
#define __pyx_n_u_VarianceOptions_2 __pyx_string_tab[532]
#define __pyx_n_u_VarianceOptions___init __pyx_string_tab[533]
#define __pyx_n_u_VarianceOptions___reduce_cython __pyx_string_tab[534]
#define __pyx_n_u_VarianceOptions___setstate_cyth __pyx_string_tab[535]
#define __pyx_n_u_VarianceOptions__set_options __pyx_string_tab[536]
#define __pyx_n_u_VectorFunction __pyx_string_tab[537]
#define __pyx_n_u_VectorKernel_2 __pyx_string_tab[538]
#define __pyx_n_u_VectorKernel___reduce_cython __pyx_string_tab[539]
#define __pyx_n_u_VectorKernel___setstate_cython __pyx_string_tab[540]
#define __pyx_n_u_WeekOptions __pyx_string_tab[541]
#define __pyx_n_u_WeekOptions_2 __pyx_string_tab[542]
#define __pyx_n_u_WeekOptions___init __pyx_string_tab[543]
#define __pyx_n_u_WeekOptions___reduce_cython __pyx_string_tab[544]
#define __pyx_n_u_WeekOptions___setstate_cython __pyx_string_tab[545]
#define __pyx_n_u_WeekOptions__set_options __pyx_string_tab[546]
#define __pyx_n_u_WinsorizeOptions __pyx_string_tab[547]
#define __pyx_n_u_WinsorizeOptions_2 __pyx_string_tab[548]
#define __pyx_n_u_WinsorizeOptions___init __pyx_string_tab[549]
#define __pyx_n_u_WinsorizeOptions___reduce_cytho __pyx_string_tab[550]
#define __pyx_n_u_WinsorizeOptions___setstate_cyt __pyx_string_tab[551]
#define __pyx_n_u_WinsorizeOptions__set_options __pyx_string_tab[552]
#define __pyx_n_u_ZeroFillOptions __pyx_string_tab[553]
#define __pyx_n_u_ZeroFillOptions_2 __pyx_string_tab[554]
#define __pyx_n_u_ZeroFillOptions___init __pyx_string_tab[555]
#define __pyx_n_u_ZeroFillOptions___reduce_cython __pyx_string_tab[556]
#define __pyx_n_u_ZeroFillOptions___setstate_cyth __pyx_string_tab[557]
#define __pyx_n_u_ZeroFillOptions__set_options __pyx_string_tab[558]
#define __pyx_n_u_add_checked __pyx_string_tab[559]
#define __pyx_n_u_all __pyx_string_tab[560]
#define __pyx_n_u_allow_arrow_extensions __pyx_string_tab[561]
#define __pyx_n_u_allow_decimal_truncate __pyx_string_tab[562]
#define __pyx_n_u_allow_float_truncate __pyx_string_tab[563]
#define __pyx_n_u_allow_int_overflow __pyx_string_tab[564]
#define __pyx_n_u_allow_invalid_utf8 __pyx_string_tab[565]
#define __pyx_n_u_allow_time_overflow __pyx_string_tab[566]
#define __pyx_n_u_allow_time_truncate __pyx_string_tab[567]
#define __pyx_n_u_ambiguous __pyx_string_tab[568]
#define __pyx_n_u_ambiguous_map __pyx_string_tab[569]
#define __pyx_n_u_and_kleene __pyx_string_tab[570]
#define __pyx_n_u_arg_names __pyx_string_tab[571]
#define __pyx_n_u_args __pyx_string_tab[572]
#define __pyx_n_u_argument __pyx_string_tab[573]
#define __pyx_n_u_arguments __pyx_string_tab[574]
#define __pyx_n_u_arity_2 __pyx_string_tab[575]
#define __pyx_n_u_array __pyx_string_tab[576]
#define __pyx_n_u_asarray __pyx_string_tab[577]
#define __pyx_n_u_ascending __pyx_string_tab[578]
#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[579]
#define __pyx_n_u_at_end __pyx_string_tab[580]
#define __pyx_n_u_at_start __pyx_string_tab[581]
#define __pyx_n_u_batch_length __pyx_string_tab[582]
#define __pyx_n_u_biased __pyx_string_tab[583]
#define __pyx_n_u_boundscheck __pyx_string_tab[584]
#define __pyx_n_u_buf __pyx_string_tab[585]
#define __pyx_n_u_buffer __pyx_string_tab[586]
#define __pyx_n_u_buffer_size __pyx_string_tab[587]
#define __pyx_n_u_c_args __pyx_string_tab[588]
#define __pyx_n_u_c_arguments __pyx_string_tab[589]
#define __pyx_n_u_c_arity __pyx_string_tab[590]
#define __pyx_n_u_c_batch __pyx_string_tab[591]
#define __pyx_n_u_c_buf __pyx_string_tab[592]
#define __pyx_n_u_c_context __pyx_string_tab[593]
#define __pyx_n_u_c_exec_ctx __pyx_string_tab[594]
#define __pyx_n_u_c_field __pyx_string_tab[595]
#define __pyx_n_u_c_field_metadata __pyx_string_tab[596]
#define __pyx_n_u_c_field_names __pyx_string_tab[597]
#define __pyx_n_u_c_func_doc __pyx_string_tab[598]
#define __pyx_n_u_c_func_name __pyx_string_tab[599]
#define __pyx_n_u_c_func_registry __pyx_string_tab[600]
#define __pyx_n_u_c_function __pyx_string_tab[601]
#define __pyx_n_u_c_in_types __pyx_string_tab[602]
#define __pyx_n_u_c_key_names __pyx_string_tab[603]
#define __pyx_n_u_c_name __pyx_string_tab[604]
#define __pyx_n_u_c_options __pyx_string_tab[605]
#define __pyx_n_u_c_out_type __pyx_string_tab[606]
#define __pyx_n_u_c_output_type __pyx_string_tab[607]
#define __pyx_n_u_c_reader __pyx_string_tab[608]
#define __pyx_n_u_c_register_func __pyx_string_tab[609]
#define __pyx_n_u_c_schema __pyx_string_tab[610]
#define __pyx_n_u_c_type __pyx_string_tab[611]
#define __pyx_n_u_c_unexpected_key_behavior __pyx_string_tab[612]
#define __pyx_n_u_calendar_based_origin __pyx_string_tab[613]
#define __pyx_n_u_call __pyx_string_tab[614]
#define __pyx_n_u_call_2 __pyx_string_tab[615]
#define __pyx_n_u_call_function __pyx_string_tab[616]
#define __pyx_n_u_call_tabular_function __pyx_string_tab[617]
#define __pyx_n_u_cast __pyx_string_tab[618]
#define __pyx_n_u_ceil_is_strictly_greater __pyx_string_tab[619]
#define __pyx_n_u_characters __pyx_string_tab[620]
#define __pyx_n_u_class __pyx_string_tab[621]
#define __pyx_n_u_class_getitem __pyx_string_tab[622]
#define __pyx_n_u_cline_in_traceback __pyx_string_tab[623]
#define __pyx_n_u_cls __pyx_string_tab[624]
#define __pyx_n_u_collections __pyx_string_tab[625]
#define __pyx_n_u_context __pyx_string_tab[626]
#define __pyx_n_u_count_from_zero __pyx_string_tab[627]
#define __pyx_n_u_day __pyx_string_tab[628]
#define __pyx_n_u_ddof __pyx_string_tab[629]
#define __pyx_n_u_default __pyx_string_tab[630]
#define __pyx_n_u_delta __pyx_string_tab[631]
#define __pyx_n_u_dense __pyx_string_tab[632]
#define __pyx_n_u_descending __pyx_string_tab[633]
#define __pyx_n_u_description __pyx_string_tab[634]
#define __pyx_n_u_deserialize __pyx_string_tab[635]
#define __pyx_n_u_deserialize_2 __pyx_string_tab[636]
#define __pyx_n_u_dict __pyx_string_tab[637]
#define __pyx_n_u_dict_2 __pyx_string_tab[638]
#define __pyx_n_u_divide_checked __pyx_string_tab[639]
#define __pyx_n_u_doc __pyx_string_tab[640]
#define __pyx_n_u_down __pyx_string_tab[641]
#define __pyx_n_u_drop __pyx_string_tab[642]
#define __pyx_n_u_earliest __pyx_string_tab[643]
#define __pyx_n_u_emit_null __pyx_string_tab[644]
#define __pyx_n_u_encode __pyx_string_tab[645]
#define __pyx_n_u_equal __pyx_string_tab[646]
#define __pyx_n_u_equals __pyx_string_tab[647]
#define __pyx_n_u_error_is_null __pyx_string_tab[648]
#define __pyx_n_u_exception_class __pyx_string_tab[649]
#define __pyx_n_u_expression __pyx_string_tab[650]
#define __pyx_n_u_expressions __pyx_string_tab[651]
#define __pyx_n_u_field __pyx_string_tab[652]
#define __pyx_n_u_field_metadata __pyx_string_tab[653]
#define __pyx_n_u_field_names __pyx_string_tab[654]
#define __pyx_n_u_field_nullability __pyx_string_tab[655]
#define __pyx_n_u_field_ref __pyx_string_tab[656]
#define __pyx_n_u_first __pyx_string_tab[657]
#define __pyx_n_u_first_week_is_fully_in_year __pyx_string_tab[658]
#define __pyx_n_u_forbid_instantiation __pyx_string_tab[659]
#define __pyx_n_u_form __pyx_string_tab[660]
#define __pyx_n_u_form_map __pyx_string_tab[661]
#define __pyx_n_u_format __pyx_string_tab[662]
#define __pyx_n_u_from_batches __pyx_string_tab[663]
#define __pyx_n_u_from_substrait __pyx_string_tab[664]
#define __pyx_n_u_frombytes __pyx_string_tab[665]
#define __pyx_n_u_func __pyx_string_tab[666]
#define __pyx_n_u_func_2 __pyx_string_tab[667]
#define __pyx_n_u_func_registry __pyx_string_tab[668]
#define __pyx_n_u_func_spec __pyx_string_tab[669]
#define __pyx_n_u_function_doc __pyx_string_tab[670]
#define __pyx_n_u_function_name __pyx_string_tab[671]
#define __pyx_n_u_function_registry __pyx_string_tab[672]
#define __pyx_n_u_get_function __pyx_string_tab[673]
#define __pyx_n_u_get_udf_context __pyx_string_tab[674]
#define __pyx_n_u_getfullargspec __pyx_string_tab[675]
#define __pyx_n_u_getstate __pyx_string_tab[676]
#define __pyx_n_u_greater __pyx_string_tab[677]
#define __pyx_n_u_greater_equal __pyx_string_tab[678]
#define __pyx_n_u_half_down __pyx_string_tab[679]
#define __pyx_n_u_half_to_even __pyx_string_tab[680]
#define __pyx_n_u_half_to_odd __pyx_string_tab[681]
#define __pyx_n_u_half_towards_infinity __pyx_string_tab[682]
#define __pyx_n_u_half_towards_zero __pyx_string_tab[683]
#define __pyx_n_u_half_up __pyx_string_tab[684]
#define __pyx_n_u_hash_aggregate __pyx_string_tab[685]
#define __pyx_n_u_higher __pyx_string_tab[686]
#define __pyx_n_u_hour __pyx_string_tab[687]
#define __pyx_n_u_ignore __pyx_string_tab[688]
#define __pyx_n_u_ignore_case __pyx_string_tab[689]
#define __pyx_n_u_in_type __pyx_string_tab[690]
#define __pyx_n_u_in_types __pyx_string_tab[691]
#define __pyx_n_u_indices __pyx_string_tab[692]
#define __pyx_n_u_init __pyx_string_tab[693]
#define __pyx_n_u_initializer __pyx_string_tab[694]
#define __pyx_n_u_inspect __pyx_string_tab[695]
#define __pyx_n_u_int32 __pyx_string_tab[696]
#define __pyx_n_u_interp __pyx_string_tab[697]
#define __pyx_n_u_interp_map __pyx_string_tab[698]
#define __pyx_n_u_interpolation __pyx_string_tab[699]
#define __pyx_n_u_invert __pyx_string_tab[700]
#define __pyx_n_u_is_coroutine __pyx_string_tab[701]
#define __pyx_n_u_is_in __pyx_string_tab[702]
#define __pyx_n_u_is_nan __pyx_string_tab[703]
#define __pyx_n_u_is_null __pyx_string_tab[704]
#define __pyx_n_u_is_safe __pyx_string_tab[705]
#define __pyx_n_u_is_valid __pyx_string_tab[706]
#define __pyx_n_u_isin __pyx_string_tab[707]
#define __pyx_n_u_items __pyx_string_tab[708]
#define __pyx_n_u_k __pyx_string_tab[709]
#define __pyx_n_u_key_names __pyx_string_tab[710]
#define __pyx_n_u_keys __pyx_string_tab[711]
#define __pyx_n_u_kind_2 __pyx_string_tab[712]
#define __pyx_n_u_kind_map __pyx_string_tab[713]
#define __pyx_n_u_klass __pyx_string_tab[714]
#define __pyx_n_u_last __pyx_string_tab[715]
#define __pyx_n_u_latest __pyx_string_tab[716]
#define __pyx_n_u_lean_left_on_odd_padding __pyx_string_tab[717]
#define __pyx_n_u_length __pyx_string_tab[718]
#define __pyx_n_u_less __pyx_string_tab[719]
#define __pyx_n_u_less_equal __pyx_string_tab[720]
#define __pyx_n_u_lib __pyx_string_tab[721]
#define __pyx_n_u_linear __pyx_string_tab[722]
#define __pyx_n_u_list_functions __pyx_string_tab[723]
#define __pyx_n_u_locale __pyx_string_tab[724]
#define __pyx_n_u_lower __pyx_string_tab[725]
#define __pyx_n_u_lower_limit __pyx_string_tab[726]
#define __pyx_n_u_main __pyx_string_tab[727]
#define __pyx_n_u_mask __pyx_string_tab[728]
#define __pyx_n_u_max __pyx_string_tab[729]
#define __pyx_n_u_max_index __pyx_string_tab[730]
#define __pyx_n_u_max_replacements __pyx_string_tab[731]
#define __pyx_n_u_max_splits __pyx_string_tab[732]
#define __pyx_n_u_maxsize __pyx_string_tab[733]
#define __pyx_n_u_maybe_options __pyx_string_tab[734]
#define __pyx_n_u_memory_pool __pyx_string_tab[735]
#define __pyx_n_u_message __pyx_string_tab[736]
#define __pyx_n_u_meta __pyx_string_tab[737]
#define __pyx_n_u_metaclass __pyx_string_tab[738]
#define __pyx_n_u_metadata __pyx_string_tab[739]
#define __pyx_n_u_microsecond __pyx_string_tab[740]
#define __pyx_n_u_midpoint __pyx_string_tab[741]
#define __pyx_n_u_millisecond __pyx_string_tab[742]
#define __pyx_n_u_min __pyx_string_tab[743]
#define __pyx_n_u_min_count __pyx_string_tab[744]
#define __pyx_n_u_min_count_doc __pyx_string_tab[745]
#define __pyx_n_u_minute __pyx_string_tab[746]
#define __pyx_n_u_mode __pyx_string_tab[747]
#define __pyx_n_u_mode_map __pyx_string_tab[748]
#define __pyx_n_u_module __pyx_string_tab[749]
#define __pyx_n_u_module_2 __pyx_string_tab[750]
#define __pyx_n_u_month __pyx_string_tab[751]
#define __pyx_n_u_mro_entries __pyx_string_tab[752]
#define __pyx_n_u_ms __pyx_string_tab[753]
#define __pyx_n_u_msg __pyx_string_tab[754]
#define __pyx_n_u_multiple __pyx_string_tab[755]
#define __pyx_n_u_multiply_checked __pyx_string_tab[756]
#define __pyx_n_u_n __pyx_string_tab[757]
#define __pyx_n_u_name __pyx_string_tab[758]
#define __pyx_n_u_name_2 __pyx_string_tab[759]
#define __pyx_n_u_name_or_idx __pyx_string_tab[760]
#define __pyx_n_u_namedtuple __pyx_string_tab[761]
#define __pyx_n_u_names __pyx_string_tab[762]
#define __pyx_n_u_nan_is_null __pyx_string_tab[763]
#define __pyx_n_u_nanosecond __pyx_string_tab[764]
#define __pyx_n_u_ndarray __pyx_string_tab[765]
#define __pyx_n_u_ndigits __pyx_string_tab[766]
#define __pyx_n_u_nearest __pyx_string_tab[767]
#define __pyx_n_u_nested __pyx_string_tab[768]
#define __pyx_n_u_nested_field __pyx_string_tab[769]
#define __pyx_n_u_new __pyx_string_tab[770]
#define __pyx_n_u_next __pyx_string_tab[771]
#define __pyx_n_u_nonexistent __pyx_string_tab[772]
#define __pyx_n_u_nonexistent_map __pyx_string_tab[773]
#define __pyx_n_u_not_equal __pyx_string_tab[774]
#define __pyx_n_u_np __pyx_string_tab[775]
#define __pyx_n_u_ns __pyx_string_tab[776]
#define __pyx_n_u_null_encoding __pyx_string_tab[777]
#define __pyx_n_u_null_encoding_map __pyx_string_tab[778]
#define __pyx_n_u_null_handling __pyx_string_tab[779]
#define __pyx_n_u_null_handling_map __pyx_string_tab[780]
#define __pyx_n_u_null_placement_2 __pyx_string_tab[781]
#define __pyx_n_u_null_replacement __pyx_string_tab[782]
#define __pyx_n_u_null_selection_behavior __pyx_string_tab[783]
#define __pyx_n_u_null_selection_map __pyx_string_tab[784]
#define __pyx_n_u_num_args __pyx_string_tab[785]
#define __pyx_n_u_num_kernels_2 __pyx_string_tab[786]
#define __pyx_n_u_numpy __pyx_string_tab[787]
#define __pyx_n_u_occurrence __pyx_string_tab[788]
#define __pyx_n_u_occurrence_map __pyx_string_tab[789]
#define __pyx_n_u_only_null __pyx_string_tab[790]
#define __pyx_n_u_only_valid __pyx_string_tab[791]
#define __pyx_n_u_options __pyx_string_tab[792]
#define __pyx_n_u_options_class __pyx_string_tab[793]
#define __pyx_n_u_options_required __pyx_string_tab[794]
#define __pyx_n_u_or_kleene __pyx_string_tab[795]
#define __pyx_n_u_order __pyx_string_tab[796]
#define __pyx_n_u_other __pyx_string_tab[797]
#define __pyx_n_u_out_type __pyx_string_tab[798]
#define __pyx_n_u_output_type __pyx_string_tab[799]
#define __pyx_n_u_padding __pyx_string_tab[800]
#define __pyx_n_u_pas __pyx_string_tab[801]
#define __pyx_n_u_pas_2 __pyx_string_tab[802]
#define __pyx_n_u_pas_3 __pyx_string_tab[803]
#define __pyx_n_u_pattern __pyx_string_tab[804]
#define __pyx_n_u_period __pyx_string_tab[805]
#define __pyx_n_u_pivot __pyx_string_tab[806]
#define __pyx_n_u_pool __pyx_string_tab[807]
#define __pyx_n_u_pop __pyx_string_tab[808]
#define __pyx_n_u_prepare __pyx_string_tab[809]
#define __pyx_n_u_pyarrow__compute __pyx_string_tab[810]
#define __pyx_n_u_pyarrow_lib __pyx_string_tab[811]
#define __pyx_n_u_pyarrow_substrait __pyx_string_tab[812]
#define __pyx_n_u_pyarrow_util __pyx_string_tab[813]
#define __pyx_n_u_pyx_capi __pyx_string_tab[814]
#define __pyx_n_u_pyx_checksum __pyx_string_tab[815]
#define __pyx_n_u_pyx_result __pyx_string_tab[816]
#define __pyx_n_u_pyx_state __pyx_string_tab[817]
#define __pyx_n_u_pyx_type __pyx_string_tab[818]
#define __pyx_n_u_pyx_unpickle_Kernel __pyx_string_tab[819]
#define __pyx_n_u_pyx_vtable __pyx_string_tab[820]
#define __pyx_n_u_q __pyx_string_tab[821]
#define __pyx_n_u_qualname __pyx_string_tab[822]
#define __pyx_n_u_quantiles __pyx_string_tab[823]
#define __pyx_n_u_quarter __pyx_string_tab[824]
#define __pyx_n_u_query_key __pyx_string_tab[825]
#define __pyx_n_u_raise __pyx_string_tab[826]
#define __pyx_n_u_raise_invalid_function_option __pyx_string_tab[827]
#define __pyx_n_u_reader __pyx_string_tab[828]
#define __pyx_n_u_recursive __pyx_string_tab[829]
#define __pyx_n_u_reduce __pyx_string_tab[830]
#define __pyx_n_u_reduce_cython __pyx_string_tab[831]
#define __pyx_n_u_reduce_ex __pyx_string_tab[832]
#define __pyx_n_u_register_aggregate_function __pyx_string_tab[833]
#define __pyx_n_u_register_func __pyx_string_tab[834]
#define __pyx_n_u_register_scalar_function __pyx_string_tab[835]
#define __pyx_n_u_register_tabular_function __pyx_string_tab[836]
#define __pyx_n_u_register_user_defined_function __pyx_string_tab[837]
#define __pyx_n_u_register_vector_function __pyx_string_tab[838]
#define __pyx_n_u_replace __pyx_string_tab[839]
#define __pyx_n_u_replacement __pyx_string_tab[840]
#define __pyx_n_u_res __pyx_string_tab[841]
#define __pyx_n_u_result __pyx_string_tab[842]
#define __pyx_n_u_return_fixed_size_list __pyx_string_tab[843]
#define __pyx_n_u_reverse __pyx_string_tab[844]
#define __pyx_n_u_round_mode_2 __pyx_string_tab[845]
#define __pyx_n_u_run_end_ty __pyx_string_tab[846]
#define __pyx_n_u_run_end_type __pyx_string_tab[847]
#define __pyx_n_u_s __pyx_string_tab[848]
#define __pyx_n_u_safe __pyx_string_tab[849]
#define __pyx_n_u_safe_vars_passed __pyx_string_tab[850]
#define __pyx_n_u_scalar __pyx_string_tab[851]
#define __pyx_n_u_scalar_2 __pyx_string_tab[852]
#define __pyx_n_u_scalar_aggregate __pyx_string_tab[853]
#define __pyx_n_u_schema __pyx_string_tab[854]
#define __pyx_n_u_second __pyx_string_tab[855]
#define __pyx_n_u_self __pyx_string_tab[856]
#define __pyx_n_u_serialize __pyx_string_tab[857]
#define __pyx_n_u_serialize_expressions __pyx_string_tab[858]
#define __pyx_n_u_set_name __pyx_string_tab[859]
#define __pyx_n_u_set_options __pyx_string_tab[860]
#define __pyx_n_u_set_safe __pyx_string_tab[861]
#define __pyx_n_u_set_type __pyx_string_tab[862]
#define __pyx_n_u_set_unsafe __pyx_string_tab[863]
#define __pyx_n_u_setdefault __pyx_string_tab[864]
#define __pyx_n_u_setstate __pyx_string_tab[865]
#define __pyx_n_u_setstate_cython __pyx_string_tab[866]
#define __pyx_n_u_skip __pyx_string_tab[867]
#define __pyx_n_u_skip_nulls __pyx_string_tab[868]
#define __pyx_n_u_skip_nulls_doc __pyx_string_tab[869]
#define __pyx_n_u_slots __pyx_string_tab[870]
#define __pyx_n_u_sort_keys __pyx_string_tab[871]
#define __pyx_n_u_stacklevel __pyx_string_tab[872]
#define __pyx_n_u_start __pyx_string_tab[873]
#define __pyx_n_u_startswith __pyx_string_tab[874]
#define __pyx_n_u_state __pyx_string_tab[875]
#define __pyx_n_u_staticmethod __pyx_string_tab[876]
#define __pyx_n_u_step __pyx_string_tab[877]
#define __pyx_n_u_stop __pyx_string_tab[878]
#define __pyx_n_u_subclasses __pyx_string_tab[879]
#define __pyx_n_u_subclasses_2 __pyx_string_tab[880]
#define __pyx_n_u_subclasses_instead __pyx_string_tab[881]
#define __pyx_n_u_substrait __pyx_string_tab[882]
#define __pyx_n_u_substrait_msg __pyx_string_tab[883]
#define __pyx_n_u_subtract_checked __pyx_string_tab[884]
#define __pyx_n_u_summary __pyx_string_tab[885]
#define __pyx_n_u_sys __pyx_string_tab[886]
#define __pyx_n_u_system __pyx_string_tab[887]
#define __pyx_n_u_target_type __pyx_string_tab[888]
#define __pyx_n_u_test __pyx_string_tab[889]
#define __pyx_n_u_tiebreaker __pyx_string_tab[890]
#define __pyx_n_u_tiebreaker_map __pyx_string_tab[891]
#define __pyx_n_u_timezone __pyx_string_tab[892]
#define __pyx_n_u_to_substrait __pyx_string_tab[893]
#define __pyx_n_u_tobytes __pyx_string_tab[894]
#define __pyx_n_u_towards_infinity __pyx_string_tab[895]
#define __pyx_n_u_towards_zero __pyx_string_tab[896]
#define __pyx_n_u_type __pyx_string_tab[897]
#define __pyx_n_u_type_name __pyx_string_tab[898]
#define __pyx_n_u_unexpected_key_behavior __pyx_string_tab[899]
#define __pyx_n_u_unit __pyx_string_tab[900]
#define __pyx_n_u_unit_map __pyx_string_tab[901]
#define __pyx_n_u_unsafe __pyx_string_tab[902]
#define __pyx_n_u_up __pyx_string_tab[903]
#define __pyx_n_u_update __pyx_string_tab[904]
#define __pyx_n_u_upper_limit __pyx_string_tab[905]
#define __pyx_n_u_us __pyx_string_tab[906]
#define __pyx_n_u_use_setstate __pyx_string_tab[907]
#define __pyx_n_u_valset __pyx_string_tab[908]
#define __pyx_n_u_value __pyx_string_tab[909]
#define __pyx_n_u_value_set __pyx_string_tab[910]
#define __pyx_n_u_values __pyx_string_tab[911]
#define __pyx_n_u_varargs __pyx_string_tab[912]
#define __pyx_n_u_vector __pyx_string_tab[913]
#define __pyx_n_u_warn __pyx_string_tab[914]
#define __pyx_n_u_warnings __pyx_string_tab[915]
#define __pyx_n_u_week __pyx_string_tab[916]
#define __pyx_n_u_week_start __pyx_string_tab[917]
#define __pyx_n_u_week_starts_monday __pyx_string_tab[918]
#define __pyx_n_u_width __pyx_string_tab[919]
#define __pyx_n_u_wrapped __pyx_string_tab[920]
#define __pyx_n_u_year __pyx_string_tab[921]
#define __pyx_kp_b_ __pyx_string_tab[922]
#define __pyx_kp_b__3 __pyx_string_tab[923]
#define __pyx_kp_b_arrow_FieldRef_PyObject_arrow_c __pyx_string_tab[924]
#define __pyx_kp_b_arrow_MemoryPool_struct___pyx_o __pyx_string_tab[925]
#define __pyx_kp_b_arrow_compute_Expression__true __pyx_string_tab[926]
#define __pyx_kp_b_iso88591_0_Cq_M __pyx_string_tab[927]
#define __pyx_kp_b_iso88591_0_M_1 __pyx_string_tab[928]
#define __pyx_kp_b_iso88591_1 __pyx_string_tab[929]
#define __pyx_kp_b_iso88591_11J_M_5Q __pyx_string_tab[930]
#define __pyx_kp_b_iso88591_1_1_1_7q_l_1_6_87_1_7_Q_q_9Kq_q __pyx_string_tab[931]
#define __pyx_kp_b_iso88591_1_2 __pyx_string_tab[932]
#define __pyx_kp_b_iso88591_1_M_1 __pyx_string_tab[933]
#define __pyx_kp_b_iso88591_1_M_Q __pyx_string_tab[934]
#define __pyx_kp_b_iso88591_1_M_a __pyx_string_tab[935]
#define __pyx_kp_b_iso88591_1_c_M_a __pyx_string_tab[936]
#define __pyx_kp_b_iso88591_2_M __pyx_string_tab[937]
#define __pyx_kp_b_iso88591_31_M __pyx_string_tab[938]
#define __pyx_kp_b_iso88591_31_M_1 __pyx_string_tab[939]
#define __pyx_kp_b_iso88591_31_M_A __pyx_string_tab[940]
#define __pyx_kp_b_iso88591_34_a_7q __pyx_string_tab[941]
#define __pyx_kp_b_iso88591_4A_c_M_q __pyx_string_tab[942]
#define __pyx_kp_b_iso88591_4Na_A_s_Ya_k_1_HA_HF_1 __pyx_string_tab[943]
#define __pyx_kp_b_iso88591_7q_M_Kq __pyx_string_tab[944]
#define __pyx_kp_b_iso88591_AIJ_L_t_Qj_z_1_z_87_wa_a_2_1_D_q __pyx_string_tab[945]
#define __pyx_kp_b_iso88591_AU_q_Qc_4we1_5Qd_q_1A __pyx_string_tab[946]
#define __pyx_kp_b_iso88591_AV1 __pyx_string_tab[947]
#define __pyx_kp_b_iso88591_A_0_E_1_Jaq_gQ_a_wa_q_wa_q_q_gQ __pyx_string_tab[948]
#define __pyx_kp_b_iso88591_A_1_a_M_1_q_0 __pyx_string_tab[949]
#define __pyx_kp_b_iso88591_A_3a_S_A_45Q_E_z_HF_4q_a __pyx_string_tab[950]
#define __pyx_kp_b_iso88591_A_3awc_AQ_has_1_HA_z_j_5_j_gQa_a __pyx_string_tab[951]
#define __pyx_kp_b_iso88591_A_4z_A_3gQa_a_a_A_HF_q_Qk1B_1 __pyx_string_tab[952]
#define __pyx_kp_b_iso88591_A_4z_S_7_1_M_Q __pyx_string_tab[953]
#define __pyx_kp_b_iso88591_A_4z_S_aq_1_z_q __pyx_string_tab[954]
#define __pyx_kp_b_iso88591_A_6_A_a_5Qa_q_q_a_5Q_Qha_7_1_HF __pyx_string_tab[955]
#define __pyx_kp_b_iso88591_A_A_1_Q_z __pyx_string_tab[956]
#define __pyx_kp_b_iso88591_A_E_a_M __pyx_string_tab[957]
#define __pyx_kp_b_iso88591_A_E_a_M_a __pyx_string_tab[958]
#define __pyx_kp_b_iso88591_A_G1F_a_vWE_Q_q_q_q_t1G_gQ_t1G __pyx_string_tab[959]
#define __pyx_kp_b_iso88591_A_HA_1G1A_L_Ja_aq_HF __pyx_string_tab[960]
#define __pyx_kp_b_iso88591_A_HF __pyx_string_tab[961]
#define __pyx_kp_b_iso88591_A_HF_0 __pyx_string_tab[962]
#define __pyx_kp_b_iso88591_A_HF_0_Qh_1A __pyx_string_tab[963]
#define __pyx_kp_b_iso88591_A_HF_0_a __pyx_string_tab[964]
#define __pyx_kp_b_iso88591_A_HF_1A __pyx_string_tab[965]
#define __pyx_kp_b_iso88591_A_HF_1A_2 __pyx_string_tab[966]
#define __pyx_kp_b_iso88591_A_HF_1C_1 __pyx_string_tab[967]
#define __pyx_kp_b_iso88591_A_HF_1G1A __pyx_string_tab[968]
#define __pyx_kp_b_iso88591_A_HF_1L __pyx_string_tab[969]
#define __pyx_kp_b_iso88591_A_HF_1_5Qa __pyx_string_tab[970]
#define __pyx_kp_b_iso88591_A_HF_1_A_2 __pyx_string_tab[971]
#define __pyx_kp_b_iso88591_A_HF_2_1 __pyx_string_tab[972]
#define __pyx_kp_b_iso88591_A_HF_31 __pyx_string_tab[973]
#define __pyx_kp_b_iso88591_A_HF_314LAQ __pyx_string_tab[974]
#define __pyx_kp_b_iso88591_A_HF_31G1A __pyx_string_tab[975]
#define __pyx_kp_b_iso88591_A_HF_31_2 __pyx_string_tab[976]
#define __pyx_kp_b_iso88591_A_HF_6a_1 __pyx_string_tab[977]
#define __pyx_kp_b_iso88591_A_HF_7_A __pyx_string_tab[978]
#define __pyx_kp_b_iso88591_A_HF_7q_q __pyx_string_tab[979]
#define __pyx_kp_b_iso88591_A_HF_A __pyx_string_tab[980]
#define __pyx_kp_b_iso88591_A_HF_AWAZ_1 __pyx_string_tab[981]
#define __pyx_kp_b_iso88591_A_HF_AWF __pyx_string_tab[982]
#define __pyx_kp_b_iso88591_A_HF_AWF_2 __pyx_string_tab[983]
#define __pyx_kp_b_iso88591_A_HF_A_1 __pyx_string_tab[984]
#define __pyx_kp_b_iso88591_A_HF_A_5Qa_1 __pyx_string_tab[985]
#define __pyx_kp_b_iso88591_A_HF_A_B_1 __pyx_string_tab[986]
#define __pyx_kp_b_iso88591_A_HF_Q_4AQ_A __pyx_string_tab[987]
#define __pyx_kp_b_iso88591_A_HF_Qi_8 __pyx_string_tab[988]
#define __pyx_kp_b_iso88591_A_HF_aq __pyx_string_tab[989]
#define __pyx_kp_b_iso88591_A_HF_as2B_CXXY __pyx_string_tab[990]
#define __pyx_kp_b_iso88591_A_HF_awaz __pyx_string_tab[991]
#define __pyx_kp_b_iso88591_A_HF_q __pyx_string_tab[992]
#define __pyx_kp_b_iso88591_A_HF_q_7_q __pyx_string_tab[993]
#define __pyx_kp_b_iso88591_A_HF_q_l __pyx_string_tab[994]
#define __pyx_kp_b_iso88591_A_HF_q_waq __pyx_string_tab[995]
#define __pyx_kp_b_iso88591_A_Ja_Jaq_q __pyx_string_tab[996]
#define __pyx_kp_b_iso88591_A_L_Jaq_q __pyx_string_tab[997]
#define __pyx_kp_b_iso88591_A_M __pyx_string_tab[998]
#define __pyx_kp_b_iso88591_A_M_2 __pyx_string_tab[999]
#define __pyx_kp_b_iso88591_A_M_Q __pyx_string_tab[1000]
#define __pyx_kp_b_iso88591_A_M_q __pyx_string_tab[1001]
#define __pyx_kp_b_iso88591_A_M_q_2 __pyx_string_tab[1002]
#define __pyx_kp_b_iso88591_A_Qa_6_IQnAT_IQit2_Ja_WA_A_31A_a __pyx_string_tab[1003]
#define __pyx_kp_b_iso88591_A_QgQ_Q_S_q_a_4AV7 __pyx_string_tab[1004]
#define __pyx_kp_b_iso88591_A_Qj_hd_c_a_q_Q_4AQ_HF_2_1 __pyx_string_tab[1005]
#define __pyx_kp_b_iso88591_A_Qk_2XZq_q_1_O_Q_q_1_2Yj_q_a_1 __pyx_string_tab[1006]
#define __pyx_kp_b_iso88591_A_Qm1_U_aq_iq_7_1_U_7q __pyx_string_tab[1007]
#define __pyx_kp_b_iso88591_A_S_1_uCq_q_avQa_5Q_haq_A_M_QfI __pyx_string_tab[1008]
#define __pyx_kp_b_iso88591_A_WD_1_wd_1_HF_awaq_1_AQ __pyx_string_tab[1009]
#define __pyx_kp_b_iso88591_A_a_0_Zq_6 __pyx_string_tab[1010]
#define __pyx_kp_b_iso88591_A_a_1_6aq_5Qa_q __pyx_string_tab[1011]
#define __pyx_kp_b_iso88591_A_a_8 __pyx_string_tab[1012]
#define __pyx_kp_b_iso88591_A_a_AQ_1 __pyx_string_tab[1013]
#define __pyx_kp_b_iso88591_A_a_AWAYd_AQ_6 __pyx_string_tab[1014]
#define __pyx_kp_b_iso88591_A_a_A_1A __pyx_string_tab[1015]
#define __pyx_kp_b_iso88591_A_a_A_L_1_81 __pyx_string_tab[1016]
#define __pyx_kp_b_iso88591_A_a_Q_1 __pyx_string_tab[1017]
#define __pyx_kp_b_iso88591_A_a_Q_DA __pyx_string_tab[1018]
#define __pyx_kp_b_iso88591_A_a_j_1 __pyx_string_tab[1019]
#define __pyx_kp_b_iso88591_A_d __pyx_string_tab[1020]
#define __pyx_kp_b_iso88591_A_d_3DA_q_HA __pyx_string_tab[1021]
#define __pyx_kp_b_iso88591_A_d__AXQ_3a_Cq_AQ_3a_Ba_A_t1D_G1 __pyx_string_tab[1022]
#define __pyx_kp_b_iso88591_A_gQa_i_1A_AQ __pyx_string_tab[1023]
#define __pyx_kp_b_iso88591_A_s_a_1_q_4z_q_d_1_iq_01_r_A_HF __pyx_string_tab[1024]
#define __pyx_kp_b_iso88591_A_t5_q_WA __pyx_string_tab[1025]
#define __pyx_kp_b_iso88591_A_t_r_1_aq_1 __pyx_string_tab[1026]
#define __pyx_kp_b_iso88591_A_uF_i_1_i_A_i_A_i_q_i_Q_iq __pyx_string_tab[1027]
#define __pyx_kp_b_iso88591_A_wa_iq_Kq_Q __pyx_string_tab[1028]
#define __pyx_kp_b_iso88591_A_z_q_1 __pyx_string_tab[1029]
#define __pyx_kp_b_iso88591_A_z_q_AQ __pyx_string_tab[1030]
#define __pyx_kp_b_iso88591_CvQ_M __pyx_string_tab[1031]
#define __pyx_kp_b_iso88591_E_d_wa_E_AQ_83a_a_0_uCq_WAQ_U_1 __pyx_string_tab[1032]
#define __pyx_kp_b_iso88591_J_z_A_K_AV9T_H_1_a_5Q __pyx_string_tab[1033]
#define __pyx_kp_b_iso88591_L_xq_iq_aq_z_A_Kxwa_j_AQ_A_HE_3 __pyx_string_tab[1034]
#define __pyx_kp_b_iso88591_M __pyx_string_tab[1035]
#define __pyx_kp_b_iso88591_M_1 __pyx_string_tab[1036]
#define __pyx_kp_b_iso88591_M_2 __pyx_string_tab[1037]
#define __pyx_kp_b_iso88591_M_F __pyx_string_tab[1038]
#define __pyx_kp_b_iso88591_M_Q __pyx_string_tab[1039]
#define __pyx_kp_b_iso88591_M_ha __pyx_string_tab[1040]
#define __pyx_kp_b_iso88591_N_Gq_1_a_5Q __pyx_string_tab[1041]
#define __pyx_kp_b_iso88591_Q __pyx_string_tab[1042]
#define __pyx_kp_b_iso88591_QQR_t2_1AWA_HLccd __pyx_string_tab[1043]
#define __pyx_kp_b_iso88591_Q_M __pyx_string_tab[1044]
#define __pyx_kp_b_iso88591_Q_M_2 __pyx_string_tab[1045]
#define __pyx_kp_b_iso88591_Q_M_A __pyx_string_tab[1046]
#define __pyx_kp_b_iso88591_Q_M_Q __pyx_string_tab[1047]
#define __pyx_kp_b_iso88591_Q_M_Q_2 __pyx_string_tab[1048]
#define __pyx_kp_b_iso88591_Qa __pyx_string_tab[1049]
#define __pyx_kp_b_iso88591_S_r_AQ_Q_QfBc_M __pyx_string_tab[1050]
#define __pyx_kp_b_iso88591_V_Gq_1_a_5Q __pyx_string_tab[1051]
#define __pyx_kp_b_iso88591_X_AQ_Q_oQa_1 __pyx_string_tab[1052]
#define __pyx_kp_b_iso88591__11 __pyx_string_tab[1053]
#define __pyx_kp_b_iso88591_a_M __pyx_string_tab[1054]
#define __pyx_kp_b_iso88591_a_M_2 __pyx_string_tab[1055]
#define __pyx_kp_b_iso88591_a_Q_WA_5XQ_q_M __pyx_string_tab[1056]
#define __pyx_kp_b_iso88591_f_J_1_a_5Q __pyx_string_tab[1057]
#define __pyx_kp_b_iso88591_k_5_1_3a_uBa_q_M_q __pyx_string_tab[1058]
#define __pyx_kp_b_iso88591_k_M_vQ __pyx_string_tab[1059]
#define __pyx_kp_b_iso88591_m1_M __pyx_string_tab[1060]
#define __pyx_kp_b_iso88591_n_a_Qa_4uAV89L_A __pyx_string_tab[1061]
#define __pyx_kp_b_iso88591_oQ_Q_wa_4A_HF_a __pyx_string_tab[1062]
#define __pyx_kp_b_iso88591_q_0_kQR_6_7_1 __pyx_string_tab[1063]
#define __pyx_kp_b_iso88591_q_2 __pyx_string_tab[1064]
#define __pyx_kp_b_iso88591_q_M __pyx_string_tab[1065]
#define __pyx_kp_b_iso88591_q_Ql_z_q_1G1 __pyx_string_tab[1066]
#define __pyx_kp_b_iso88591_vS_A_Qa_1 __pyx_string_tab[1067]
#define __pyx_kp_b_iso88591_x_0_M __pyx_string_tab[1068]
#define __pyx_kp_b_iso88591_z_9_4z_Q_M__L __pyx_string_tab[1069]
#define __pyx_kp_b_iso88591_z_Q_4z_Q_M_WM_Q __pyx_string_tab[1070]
#define __pyx_float_0_5 __pyx_number_tab[0]
#define __pyx_float_1_0 __pyx_number_tab[1]
#define __pyx_int_0 __pyx_number_tab[2]
#define __pyx_int_neg_1 __pyx_number_tab[3]
#define __pyx_int_1 __pyx_number_tab[4]
#define __pyx_int_2 __pyx_number_tab[5]
#define __pyx_int_100 __pyx_number_tab[6]
#define __pyx_int_500 __pyx_number_tab[7]
#define __pyx_int_238750788 __pyx_number_tab[8]
#define __pyx_int_0x10000000000000000 __pyx_number_tab[9]
/* #### Code section: module_state_clear ### */
#if CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) {
  __pyx_mstatetype *clear_module_state = __Pyx_PyModule_GetState(m);
  if (!clear_module_state) return 0;
  Py_CLEAR(clear_module_state->__pyx_d);
  Py_CLEAR(clear_module_state->__pyx_b);
  Py_CLEAR(clear_module_state->__pyx_cython_runtime);
  Py_CLEAR(clear_module_state->__pyx_empty_tuple);
  Py_CLEAR(clear_module_state->__pyx_empty_bytes);
  Py_CLEAR(clear_module_state->__pyx_empty_unicode);
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __Pyx_State_RemoveModule(NULL);
  #endif
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4bool_bool);
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_7complex_complex);
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_8datetime_date);
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_8datetime_time);
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_8datetime_datetime);
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_8datetime_timedelta);
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_8datetime_tzinfo);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib__Weakrefable);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_IpcWriteOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_IpcReadOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Message);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_MemoryPool);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_DataType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_ListType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_LargeListType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_ListViewType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_LargeListViewType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_MapType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_FixedSizeListType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_StructType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_DictionaryMemo);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_DictionaryType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_TimestampType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Time32Type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Time64Type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_DurationType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Decimal32Type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Decimal64Type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Decimal128Type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Decimal256Type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_RunEndEncodedType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_BaseExtensionType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_ExtensionType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_FixedShapeTensorType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Bool8Type);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_OpaqueType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_UuidType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_JsonType);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib__Metadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_KeyValueMetadata);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Field);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Schema);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Scalar);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_ArrayStatistics);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib__PandasConvertible);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Tensor);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_SparseCSRMatrix);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_SparseCSCMatrix);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_SparseCOOTensor);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_SparseCSFTensor);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_NullArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_BooleanArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_NumericArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_IntegerArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_FloatingPointArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Int8Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_UInt8Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Int16Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_UInt16Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Int32Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_UInt32Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Int64Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_UInt64Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_HalfFloatArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_FloatArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_DoubleArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Decimal32Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Decimal64Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Decimal128Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Decimal256Array);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_StructArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_BaseListArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_ListArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_LargeListArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_ListViewArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_LargeListViewArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_MapArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_FixedSizeListArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_UnionArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_StringArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_BinaryArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_StringViewArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_BinaryViewArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_DictionaryArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_ExtensionArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_MonthDayNanoIntervalArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_ChunkedArray);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib__Tabular);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Table);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_RecordBatch);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Device);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_MemoryManager);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Buffer);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_ResizableBuffer);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_NativeFile);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_BufferedInputStream);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_BufferedOutputStream);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_CompressedInputStream);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_CompressedOutputStream);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib__CRecordBatchWriter);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_RecordBatchReader);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_CacheOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_Codec);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_3lib_StopToken);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_UdfContext);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_UdfContext);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_FunctionOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_FunctionOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__SortOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__SortOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_Expression);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_Expression);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_Kernel);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_Kernel);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_ScalarKernel);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_ScalarKernel);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_VectorKernel);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_VectorKernel);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_ScalarAggregateKernel);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_HashAggregateKernel);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_Function);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_Function);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_ScalarFunction);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_ScalarFunction);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_VectorFunction);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_VectorFunction);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_ScalarAggregateFunction);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_HashAggregateFunction);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_MetaFunction);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_MetaFunction);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_FunctionRegistry);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__CastOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__CastOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ElementWiseAggregateOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__RoundOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__RoundOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__RoundBinaryOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__RoundTemporalOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__RoundToMultipleOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__JoinOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__JoinOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__MatchSubstringOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__PadOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__PadOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ZeroFillOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__TrimOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__TrimOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ReplaceSubstringOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ExtractRegexOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ExtractRegexSpanOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__SliceOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__SliceOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ListSliceOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ReplaceSliceOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__FilterOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__FilterOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__DictionaryEncodeOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__RunEndEncodeOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__InversePermutationOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ScatterOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ScatterOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__TakeOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__TakeOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__MakeStructOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__StructFieldOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ScalarAggregateOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__CountOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__CountOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__IndexOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__IndexOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__MapLookupOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ModeOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ModeOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__SetLookupOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__StrptimeOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__StrftimeOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__DayOfWeekOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__WeekOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__WeekOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__AssumeTimezoneOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__NullOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__NullOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__VarianceOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__VarianceOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__SkewOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__SkewOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__SplitOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__SplitOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__SplitPatternOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__PartitionNthOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__WinsorizeOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__CumulativeOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__PairwiseOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ListFlattenOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__ArraySortOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__SelectKOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__SelectKOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__QuantileOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__QuantileOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__TDigestOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__TDigestOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__Utf8NormalizeOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__RandomOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__RandomOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__RankOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__RankOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__RankQuantileOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute__PivotWiderOptions);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute_RegisterUdf);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute_RegisterUdf);
  Py_CLEAR(clear_module_state->__pyx_ptype_7pyarrow_8_compute___pyx_defaults);
  Py_CLEAR(clear_module_state->__pyx_type_7pyarrow_8_compute___pyx_defaults);
  for (int i=0; i<1; ++i) { Py_CLEAR(clear_module_state->__pyx_slice[i]); }
  for (int i=0; i<27; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); }
  for (int i=0; i<286; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); }
  for (int i=0; i<1071; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); }
  for (int i=0; i<10; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); }
/* #### Code section: module_state_clear_contents ### */
/* CommonTypesMetaclass.module_state_clear */
Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType);

/* CythonFunctionShared.module_state_clear */
Py_CLEAR(clear_module_state->__pyx_CyFunctionType);

/* #### Code section: module_state_clear_end ### */
return 0;
}
#endif
/* #### Code section: module_state_traverse ### */
#if CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
  __pyx_mstatetype *traverse_module_state = __Pyx_PyModule_GetState(m);
  if (!traverse_module_state) return 0;
  Py_VISIT(traverse_module_state->__pyx_d);
  Py_VISIT(traverse_module_state->__pyx_b);
  Py_VISIT(traverse_module_state->__pyx_cython_runtime);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_tuple);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes);
  __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4bool_bool);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_7complex_complex);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_8datetime_date);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_8datetime_time);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_8datetime_datetime);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_8datetime_timedelta);
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_8datetime_tzinfo);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib__Weakrefable);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_IpcWriteOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_IpcReadOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Message);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_MemoryPool);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_DataType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_ListType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_LargeListType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_ListViewType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_LargeListViewType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_MapType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_FixedSizeListType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_StructType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_DictionaryMemo);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_DictionaryType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_TimestampType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Time32Type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Time64Type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_DurationType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Decimal32Type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Decimal64Type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Decimal128Type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Decimal256Type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_RunEndEncodedType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_BaseExtensionType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_ExtensionType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_FixedShapeTensorType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Bool8Type);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_OpaqueType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_UuidType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_JsonType);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib__Metadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_KeyValueMetadata);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Field);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Schema);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Scalar);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_ArrayStatistics);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib__PandasConvertible);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Tensor);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_SparseCSRMatrix);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_SparseCSCMatrix);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_SparseCOOTensor);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_SparseCSFTensor);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_NullArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_BooleanArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_NumericArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_IntegerArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_FloatingPointArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Int8Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_UInt8Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Int16Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_UInt16Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Int32Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_UInt32Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Int64Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_UInt64Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_HalfFloatArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_FloatArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_DoubleArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Decimal32Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Decimal64Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Decimal128Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Decimal256Array);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_StructArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_BaseListArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_ListArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_LargeListArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_ListViewArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_LargeListViewArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_MapArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_FixedSizeListArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_UnionArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_StringArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_BinaryArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_StringViewArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_BinaryViewArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_DictionaryArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_ExtensionArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_MonthDayNanoIntervalArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_ChunkedArray);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib__Tabular);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Table);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_RecordBatch);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Device);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_MemoryManager);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Buffer);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_ResizableBuffer);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_NativeFile);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_BufferedInputStream);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_BufferedOutputStream);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_CompressedInputStream);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_CompressedOutputStream);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib__CRecordBatchWriter);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_RecordBatchReader);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_CacheOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_Codec);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_3lib_StopToken);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_UdfContext);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_UdfContext);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_FunctionOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_FunctionOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__SortOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__SortOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_Expression);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_Expression);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_Kernel);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_Kernel);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_ScalarKernel);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_ScalarKernel);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_VectorKernel);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_VectorKernel);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_ScalarAggregateKernel);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_HashAggregateKernel);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_Function);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_Function);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_ScalarFunction);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_ScalarFunction);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_VectorFunction);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_VectorFunction);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_ScalarAggregateFunction);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_HashAggregateFunction);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_MetaFunction);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_MetaFunction);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_FunctionRegistry);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__CastOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__CastOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ElementWiseAggregateOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__RoundOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__RoundOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__RoundBinaryOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__RoundTemporalOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__RoundToMultipleOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__JoinOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__JoinOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__MatchSubstringOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__PadOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__PadOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ZeroFillOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__TrimOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__TrimOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ReplaceSubstringOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ExtractRegexOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ExtractRegexSpanOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__SliceOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__SliceOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ListSliceOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ReplaceSliceOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__FilterOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__FilterOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__DictionaryEncodeOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__RunEndEncodeOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__InversePermutationOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ScatterOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ScatterOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__TakeOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__TakeOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__MakeStructOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__StructFieldOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ScalarAggregateOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__CountOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__CountOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__IndexOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__IndexOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__MapLookupOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ModeOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ModeOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__SetLookupOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__StrptimeOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__StrftimeOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__DayOfWeekOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__WeekOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__WeekOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__AssumeTimezoneOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__NullOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__NullOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__VarianceOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__VarianceOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__SkewOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__SkewOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__SplitOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__SplitOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__SplitPatternOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__PartitionNthOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__WinsorizeOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__CumulativeOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__PairwiseOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ListFlattenOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__ArraySortOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__SelectKOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__SelectKOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__QuantileOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__QuantileOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__TDigestOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__TDigestOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__Utf8NormalizeOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__RandomOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__RandomOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__RankOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__RankOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__RankQuantileOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute__PivotWiderOptions);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute_RegisterUdf);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute_RegisterUdf);
  Py_VISIT(traverse_module_state->__pyx_ptype_7pyarrow_8_compute___pyx_defaults);
  Py_VISIT(traverse_module_state->__pyx_type_7pyarrow_8_compute___pyx_defaults);
  for (int i=0; i<1; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_slice[i]); }
  for (int i=0; i<27; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); }
  for (int i=0; i<286; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); }
  for (int i=0; i<1071; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); }
  for (int i=0; i<10; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); }
/* #### Code section: module_state_traverse_contents ### */
/* CommonTypesMetaclass.module_state_traverse */
Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType);

/* CythonFunctionShared.module_state_traverse */
Py_VISIT(traverse_module_state->__pyx_CyFunctionType);

/* #### Code section: module_state_traverse_end ### */
return 0;
}
#endif
/* #### Code section: module_code ### */

/* "string.to_py":31
 *     cdef object __Pyx_PyObject_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
*/

static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string", 0);

  /* "string.to_py":33
 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:             # <<<<<<<<<<<<<<
 *         raise MemoryError()
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
*/
  __pyx_t_1 = (__pyx_v_s.size() > ((size_t)PY_SSIZE_T_MAX));
  if (unlikely(__pyx_t_1)) {

    /* "string.to_py":34
 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
 *         raise MemoryError()             # <<<<<<<<<<<<<<
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
 * cdef extern from *:
*/
    PyErr_NoMemory(); __PYX_ERR(1, 34, __pyx_L1_error)

    /* "string.to_py":33
 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:             # <<<<<<<<<<<<<<
 *         raise MemoryError()
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
*/
  }

  /* "string.to_py":35
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
 *         raise MemoryError()
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), <Py_ssize_t> s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_FromStringAndSize(__pyx_v_s.data(), ((Py_ssize_t)__pyx_v_s.size())); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 35, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "string.to_py":31
 *     cdef object __Pyx_PyObject_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyObject_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":39
 *     cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
*/

static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string", 0);

  /* "string.to_py":41
 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:             # <<<<<<<<<<<<<<
 *         raise MemoryError()
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
*/
  __pyx_t_1 = (__pyx_v_s.size() > ((size_t)PY_SSIZE_T_MAX));
  if (unlikely(__pyx_t_1)) {

    /* "string.to_py":42
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
 *         raise MemoryError()             # <<<<<<<<<<<<<<
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
 * cdef extern from *:
*/
    PyErr_NoMemory(); __PYX_ERR(1, 42, __pyx_L1_error)

    /* "string.to_py":41
 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:             # <<<<<<<<<<<<<<
 *         raise MemoryError()
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
*/
  }

  /* "string.to_py":43
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
 *         raise MemoryError()
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), <Py_ssize_t> s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyUnicode_FromStringAndSize(__pyx_v_s.data(), ((Py_ssize_t)__pyx_v_s.size())); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "string.to_py":39
 *     cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyUnicode_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":47
 *     cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
*/

static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string", 0);

  /* "string.to_py":49
 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:             # <<<<<<<<<<<<<<
 *         raise MemoryError()
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
*/
  __pyx_t_1 = (__pyx_v_s.size() > ((size_t)PY_SSIZE_T_MAX));
  if (unlikely(__pyx_t_1)) {

    /* "string.to_py":50
 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
 *         raise MemoryError()             # <<<<<<<<<<<<<<
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
 * cdef extern from *:
*/
    PyErr_NoMemory(); __PYX_ERR(1, 50, __pyx_L1_error)

    /* "string.to_py":49
 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:             # <<<<<<<<<<<<<<
 *         raise MemoryError()
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
*/
  }

  /* "string.to_py":51
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
 *         raise MemoryError()
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), <Py_ssize_t> s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_s.data(), ((Py_ssize_t)__pyx_v_s.size())); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "string.to_py":47
 *     cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":55
 *     cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
*/

static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string", 0);

  /* "string.to_py":57
 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:             # <<<<<<<<<<<<<<
 *         raise MemoryError()
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
*/
  __pyx_t_1 = (__pyx_v_s.size() > ((size_t)PY_SSIZE_T_MAX));
  if (unlikely(__pyx_t_1)) {

    /* "string.to_py":58
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
 *         raise MemoryError()             # <<<<<<<<<<<<<<
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
*/
    PyErr_NoMemory(); __PYX_ERR(1, 58, __pyx_L1_error)

    /* "string.to_py":57
 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:             # <<<<<<<<<<<<<<
 *         raise MemoryError()
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), <Py_ssize_t> s.size())
*/
  }

  /* "string.to_py":59
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
 *         raise MemoryError()
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), <Py_ssize_t> s.size())             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyByteArray_FromStringAndSize(__pyx_v_s.data(), ((Py_ssize_t)__pyx_v_s.size())); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "string.to_py":55
 *     cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
 * 
 * @cname("__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string(const string& s):
 *     if s.size() > <size_t> PY_SSIZE_T_MAX:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyByteArray_string_to_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.from_py":12
 *     cdef const char* __Pyx_PyObject_AsStringAndSize(object, Py_ssize_t*) except NULL
 * 
 * @cname("__pyx_convert_string_from_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(object o) except *:
 *     cdef Py_ssize_t length = 0
*/

static std::string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(PyObject *__pyx_v_o) {
  Py_ssize_t __pyx_v_length;
  char const *__pyx_v_data;
  std::string __pyx_r;
  char const *__pyx_t_1;
  std::string __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "string.from_py":14
 * @cname("__pyx_convert_string_from_py_6libcpp_6string_std__in_string")
 * cdef string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(object o) except *:
 *     cdef Py_ssize_t length = 0             # <<<<<<<<<<<<<<
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
 *     return string(data, <size_t> length)
*/
  __pyx_v_length = 0;

  /* "string.from_py":15
 * cdef string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(object o) except *:
 *     cdef Py_ssize_t length = 0
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)             # <<<<<<<<<<<<<<
 *     return string(data, <size_t> length)
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_AsStringAndSize(__pyx_v_o, (&__pyx_v_length)); if (unlikely(__pyx_t_1 == ((void *)NULL))) __PYX_ERR(1, 15, __pyx_L1_error)
  __pyx_v_data = __pyx_t_1;

  /* "string.from_py":16
 *     cdef Py_ssize_t length = 0
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
 *     return string(data, <size_t> length)             # <<<<<<<<<<<<<<
 * 
*/
  try {
    __pyx_t_2 = std::string(__pyx_v_data, ((size_t)__pyx_v_length));
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(1, 16, __pyx_L1_error)
  }
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "string.from_py":12
 *     cdef const char* __Pyx_PyObject_AsStringAndSize(object, Py_ssize_t*) except NULL
 * 
 * @cname("__pyx_convert_string_from_py_6libcpp_6string_std__in_string")             # <<<<<<<<<<<<<<
 * cdef string __pyx_convert_string_from_py_6libcpp_6string_std__in_string(object o) except *:
 *     cdef Py_ssize_t length = 0
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("string.from_py.__pyx_convert_string_from_py_6libcpp_6string_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  return __pyx_r;
}

/* "vector.from_py":51
 *     cdef Py_ssize_t __Pyx_PyObject_LengthHint(object o, Py_ssize_t defaultval) except -1
 * 
 * @cname("__pyx_convert_vector_from_py_bool")             # <<<<<<<<<<<<<<
 * cdef vector[X] __pyx_convert_vector_from_py_bool(object o) except *:
 * 
*/

static std::vector<bool>  __pyx_convert_vector_from_py_bool(PyObject *__pyx_v_o) {
  std::vector<bool>  __pyx_v_v;
  Py_ssize_t __pyx_v_s;
  PyObject *__pyx_v_item = NULL;
  std::vector<bool>  __pyx_r;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  bool __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_bool", 0);

  /* "vector.from_py":55
 * 
 *     cdef vector[X] v
 *     cdef Py_ssize_t s = __Pyx_PyObject_LengthHint(o, 0)             # <<<<<<<<<<<<<<
 * 
 *     if s > 0:
*/
  __pyx_t_1 = __Pyx_PyObject_LengthHint(__pyx_v_o, 0); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1L))) __PYX_ERR(1, 55, __pyx_L1_error)
  __pyx_v_s = __pyx_t_1;

  /* "vector.from_py":57
 *     cdef Py_ssize_t s = __Pyx_PyObject_LengthHint(o, 0)
 * 
 *     if s > 0:             # <<<<<<<<<<<<<<
 *         v.reserve(<size_t> s)
 * 
*/
  __pyx_t_2 = (__pyx_v_s > 0);
  if (__pyx_t_2) {

    /* "vector.from_py":58
 * 
 *     if s > 0:
 *         v.reserve(<size_t> s)             # <<<<<<<<<<<<<<
 * 
 *     for item in o:
*/
    try {
      __pyx_v_v.reserve(((size_t)__pyx_v_s));
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(1, 58, __pyx_L1_error)
    }

    /* "vector.from_py":57
 *     cdef Py_ssize_t s = __Pyx_PyObject_LengthHint(o, 0)
 * 
 *     if s > 0:             # <<<<<<<<<<<<<<
 *         v.reserve(<size_t> s)
 * 
*/
  }

  /* "vector.from_py":60
 *         v.reserve(<size_t> s)
 * 
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 * 
*/
  if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
    __pyx_t_3 = __pyx_v_o; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 60, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 60, __pyx_L1_error)
          #endif
          if (__pyx_t_1 >= __pyx_temp) break;
        }
        __pyx_t_5 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_1, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_1;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 60, __pyx_L1_error)
          #endif
          if (__pyx_t_1 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1));
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_1);
        #endif
        ++__pyx_t_1;
      }
      if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 60, __pyx_L1_error)
    } else {
      __pyx_t_5 = __pyx_t_4(__pyx_t_3);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(1, 60, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "vector.from_py":61
 * 
 *     for item in o:
 *         v.push_back(<X>item)             # <<<<<<<<<<<<<<
 * 
 *     return v
*/
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_item); if (unlikely((__pyx_t_6 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(1, 61, __pyx_L1_error)
    try {
      __pyx_v_v.push_back(((bool)__pyx_t_6));
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(1, 61, __pyx_L1_error)
    }

    /* "vector.from_py":60
 *         v.reserve(<size_t> s)
 * 
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 * 
*/
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "vector.from_py":63
 *         v.push_back(<X>item)
 * 
 *     return v             # <<<<<<<<<<<<<<
 * 
*/
  __pyx_r = __pyx_v_v;
  goto __pyx_L0;

  /* "vector.from_py":51
 *     cdef Py_ssize_t __Pyx_PyObject_LengthHint(object o, Py_ssize_t defaultval) except -1
 * 
 * @cname("__pyx_convert_vector_from_py_bool")             # <<<<<<<<<<<<<<
 * cdef vector[X] __pyx_convert_vector_from_py_bool(object o) except *:
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_bool", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static std::vector<int>  __pyx_convert_vector_from_py_int(PyObject *__pyx_v_o) {
  std::vector<int>  __pyx_v_v;
  Py_ssize_t __pyx_v_s;
  PyObject *__pyx_v_item = NULL;
  std::vector<int>  __pyx_r;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_int", 0);

  /* "vector.from_py":55
 * 
 *     cdef vector[X] v
 *     cdef Py_ssize_t s = __Pyx_PyObject_LengthHint(o, 0)             # <<<<<<<<<<<<<<
 * 
 *     if s > 0:
*/
  __pyx_t_1 = __Pyx_PyObject_LengthHint(__pyx_v_o, 0); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1L))) __PYX_ERR(1, 55, __pyx_L1_error)
  __pyx_v_s = __pyx_t_1;

  /* "vector.from_py":57
 *     cdef Py_ssize_t s = __Pyx_PyObject_LengthHint(o, 0)
 * 
 *     if s > 0:             # <<<<<<<<<<<<<<
 *         v.reserve(<size_t> s)
 * 
*/
  __pyx_t_2 = (__pyx_v_s > 0);
  if (__pyx_t_2) {

    /* "vector.from_py":58
 * 
 *     if s > 0:
 *         v.reserve(<size_t> s)             # <<<<<<<<<<<<<<
 * 
 *     for item in o:
*/
    try {
      __pyx_v_v.reserve(((size_t)__pyx_v_s));
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(1, 58, __pyx_L1_error)
    }

    /* "vector.from_py":57
 *     cdef Py_ssize_t s = __Pyx_PyObject_LengthHint(o, 0)
 * 
 *     if s > 0:             # <<<<<<<<<<<<<<
 *         v.reserve(<size_t> s)
 * 
*/
  }

  /* "vector.from_py":60
 *         v.reserve(<size_t> s)
 * 
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 * 
*/
  if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
    __pyx_t_3 = __pyx_v_o; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 60, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 60, __pyx_L1_error)
          #endif
          if (__pyx_t_1 >= __pyx_temp) break;
        }
        __pyx_t_5 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_1, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_1;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 60, __pyx_L1_error)
          #endif
          if (__pyx_t_1 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1));
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_1);
        #endif
        ++__pyx_t_1;
      }
      if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 60, __pyx_L1_error)
    } else {
      __pyx_t_5 = __pyx_t_4(__pyx_t_3);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(1, 60, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "vector.from_py":61
 * 
 *     for item in o:
 *         v.push_back(<X>item)             # <<<<<<<<<<<<<<
 * 
 *     return v
*/
    __pyx_t_6 = __Pyx_PyLong_As_int(__pyx_v_item); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 61, __pyx_L1_error)
    try {
      __pyx_v_v.push_back(((int)__pyx_t_6));
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(1, 61, __pyx_L1_error)
    }

    /* "vector.from_py":60
 *         v.reserve(<size_t> s)
 * 
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 * 
*/
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "vector.from_py":63
 *         v.push_back(<X>item)
 * 
 *     return v             # <<<<<<<<<<<<<<
 * 
*/
  __pyx_r = __pyx_v_v;
  goto __pyx_L0;

  /* "vector.from_py":51
 *     cdef Py_ssize_t __Pyx_PyObject_LengthHint(object o, Py_ssize_t defaultval) except -1
 * 
 * @cname("__pyx_convert_vector_from_py_int")             # <<<<<<<<<<<<<<
 * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *:
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static std::vector<double>  __pyx_convert_vector_from_py_double(PyObject *__pyx_v_o) {
  std::vector<double>  __pyx_v_v;
  Py_ssize_t __pyx_v_s;
  PyObject *__pyx_v_item = NULL;
  std::vector<double>  __pyx_r;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  double __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_double", 0);

  /* "vector.from_py":55
 * 
 *     cdef vector[X] v
 *     cdef Py_ssize_t s = __Pyx_PyObject_LengthHint(o, 0)             # <<<<<<<<<<<<<<
 * 
 *     if s > 0:
*/
  __pyx_t_1 = __Pyx_PyObject_LengthHint(__pyx_v_o, 0); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1L))) __PYX_ERR(1, 55, __pyx_L1_error)
  __pyx_v_s = __pyx_t_1;

  /* "vector.from_py":57
 *     cdef Py_ssize_t s = __Pyx_PyObject_LengthHint(o, 0)
 * 
 *     if s > 0:             # <<<<<<<<<<<<<<
 *         v.reserve(<size_t> s)
 * 
*/
  __pyx_t_2 = (__pyx_v_s > 0);
  if (__pyx_t_2) {

    /* "vector.from_py":58
 * 
 *     if s > 0:
 *         v.reserve(<size_t> s)             # <<<<<<<<<<<<<<
 * 
 *     for item in o:
*/
    try {
      __pyx_v_v.reserve(((size_t)__pyx_v_s));
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(1, 58, __pyx_L1_error)
    }

    /* "vector.from_py":57
 *     cdef Py_ssize_t s = __Pyx_PyObject_LengthHint(o, 0)
 * 
 *     if s > 0:             # <<<<<<<<<<<<<<
 *         v.reserve(<size_t> s)
 * 
*/
  }

  /* "vector.from_py":60
 *         v.reserve(<size_t> s)
 * 
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 * 
*/
  if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
    __pyx_t_3 = __pyx_v_o; __Pyx_INCREF(__pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 60, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 60, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 60, __pyx_L1_error)
          #endif
          if (__pyx_t_1 >= __pyx_temp) break;
        }
        __pyx_t_5 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_1, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_1;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 60, __pyx_L1_error)
          #endif
          if (__pyx_t_1 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1));
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_1);
        #endif
        ++__pyx_t_1;
      }
      if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 60, __pyx_L1_error)
    } else {
      __pyx_t_5 = __pyx_t_4(__pyx_t_3);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(1, 60, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "vector.from_py":61
 * 
 *     for item in o:
 *         v.push_back(<X>item)             # <<<<<<<<<<<<<<
 * 
 *     return v
*/
    __pyx_t_6 = __Pyx_PyFloat_AsDouble(__pyx_v_item); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 61, __pyx_L1_error)
    try {
      __pyx_v_v.push_back(((double)__pyx_t_6));
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(1, 61, __pyx_L1_error)
    }

    /* "vector.from_py":60
 *         v.reserve(<size_t> s)
 * 
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 * 
*/
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "vector.from_py":63
 *         v.push_back(<X>item)
 * 
 *     return v             # <<<<<<<<<<<<<<
 * 
*/
  __pyx_r = __pyx_v_v;
  goto __pyx_L0;

  /* "vector.from_py":51
 *     cdef Py_ssize_t __Pyx_PyObject_LengthHint(object o, Py_ssize_t defaultval) except -1
 * 
 * @cname("__pyx_convert_vector_from_py_double")             # <<<<<<<<<<<<<<
 * cdef vector[X] __pyx_convert_vector_from_py_double(object o) except *:
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/complex.pxd":20
 * 
 *         # unavailable in limited API
 *         @property             # <<<<<<<<<<<<<<
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double real(self) noexcept:
*/

#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4real_real(PyComplexObject *__pyx_v_self) {
  double __pyx_r;

  /* "cpython/complex.pxd":23
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double real(self) noexcept:
 *             return self.cval.real             # <<<<<<<<<<<<<<
 * 
 *         # unavailable in limited API
*/
  __pyx_r = __pyx_v_self->cval.real;
  goto __pyx_L0;

  /* "cpython/complex.pxd":20
 * 
 *         # unavailable in limited API
 *         @property             # <<<<<<<<<<<<<<
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double real(self) noexcept:
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}
#endif /*!(#if !CYTHON_COMPILING_IN_LIMITED_API)*/

/* "cpython/complex.pxd":26
 * 
 *         # unavailable in limited API
 *         @property             # <<<<<<<<<<<<<<
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double imag(self) noexcept:
*/

#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE double __pyx_f_7cpython_7complex_7complex_4imag_imag(PyComplexObject *__pyx_v_self) {
  double __pyx_r;

  /* "cpython/complex.pxd":29
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double imag(self) noexcept:
 *             return self.cval.imag             # <<<<<<<<<<<<<<
 * 
 *     # PyTypeObject PyComplex_Type
*/
  __pyx_r = __pyx_v_self->cval.imag;
  goto __pyx_L0;

  /* "cpython/complex.pxd":26
 * 
 *         # unavailable in limited API
 *         @property             # <<<<<<<<<<<<<<
 *         @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 *         cdef inline double imag(self) noexcept:
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}
#endif /*!(#if !CYTHON_COMPILING_IN_LIMITED_API)*/

/* "cpython/contextvars.pxd":115
 * 
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")             # <<<<<<<<<<<<<<
 * cdef inline object get_value(var, default_value=None):
 *     """Return a new reference to the value of the context variable,
*/

#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE PyObject *__pyx_f_7cpython_11contextvars_get_value(PyObject *__pyx_v_var, struct __pyx_opt_args_7cpython_11contextvars_get_value *__pyx_optional_args) {

  /* "cpython/contextvars.pxd":116
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 * cdef inline object get_value(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the default value of the context variable,
*/
  PyObject *__pyx_v_default_value = ((PyObject *)Py_None);
  PyObject *__pyx_v_value;
  PyObject *__pyx_v_pyvalue = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_value", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_default_value = __pyx_optional_args->default_value;
    }
  }

  /* "cpython/contextvars.pxd":121
 *     or None if no such value or default was found.
 *     """
 *     cdef PyObject *value = NULL             # <<<<<<<<<<<<<<
 *     PyContextVar_Get(var, NULL, &value)
 *     if value is NULL:
*/
  __pyx_v_value = NULL;

  /* "cpython/contextvars.pxd":122
 *     """
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, NULL, &value)             # <<<<<<<<<<<<<<
 *     if value is NULL:
 *         # context variable does not have a default
*/
  __pyx_t_1 = PyContextVar_Get(__pyx_v_var, NULL, (&__pyx_v_value)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 122, __pyx_L1_error)

  /* "cpython/contextvars.pxd":123
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, NULL, &value)
 *     if value is NULL:             # <<<<<<<<<<<<<<
 *         # context variable does not have a default
 *         pyvalue = default_value
*/
  __pyx_t_2 = (__pyx_v_value == NULL);
  if (__pyx_t_2) {

    /* "cpython/contextvars.pxd":125
 *     if value is NULL:
 *         # context variable does not have a default
 *         pyvalue = default_value             # <<<<<<<<<<<<<<
 *     else:
 *         # value or default value of context variable
*/
    __Pyx_INCREF(__pyx_v_default_value);
    __pyx_v_pyvalue = __pyx_v_default_value;

    /* "cpython/contextvars.pxd":123
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, NULL, &value)
 *     if value is NULL:             # <<<<<<<<<<<<<<
 *         # context variable does not have a default
 *         pyvalue = default_value
*/
    goto __pyx_L3;
  }

  /* "cpython/contextvars.pxd":128
 *     else:
 *         # value or default value of context variable
 *         pyvalue = <object>value             # <<<<<<<<<<<<<<
 *         Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue
*/
  /*else*/ {
    __pyx_t_3 = ((PyObject *)__pyx_v_value);
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_pyvalue = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "cpython/contextvars.pxd":129
 *         # value or default value of context variable
 *         pyvalue = <object>value
 *         Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'             # <<<<<<<<<<<<<<
 *     return pyvalue
 * 
*/
    Py_XDECREF(__pyx_v_value);
  }
  __pyx_L3:;

  /* "cpython/contextvars.pxd":130
 *         pyvalue = <object>value
 *         Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_pyvalue);
  __pyx_r = __pyx_v_pyvalue;
  goto __pyx_L0;

  /* "cpython/contextvars.pxd":115
 * 
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")             # <<<<<<<<<<<<<<
 * cdef inline object get_value(var, default_value=None):
 *     """Return a new reference to the value of the context variable,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cpython.contextvars.get_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pyvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
#endif /*!(#if !CYTHON_COMPILING_IN_LIMITED_API)*/

/* "cpython/contextvars.pxd":133
 * 
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")             # <<<<<<<<<<<<<<
 * cdef inline object get_value_no_default(var, default_value=None):
 *     """Return a new reference to the value of the context variable,
*/

#if !CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE PyObject *__pyx_f_7cpython_11contextvars_get_value_no_default(PyObject *__pyx_v_var, struct __pyx_opt_args_7cpython_11contextvars_get_value_no_default *__pyx_optional_args) {

  /* "cpython/contextvars.pxd":134
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")
 * cdef inline object get_value_no_default(var, default_value=None):             # <<<<<<<<<<<<<<
 *     """Return a new reference to the value of the context variable,
 *     or the provided default value if no such value was found.
*/
  PyObject *__pyx_v_default_value = ((PyObject *)Py_None);
  PyObject *__pyx_v_value;
  PyObject *__pyx_v_pyvalue = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_value_no_default", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_default_value = __pyx_optional_args->default_value;
    }
  }

  /* "cpython/contextvars.pxd":140
 *     Ignores the default value of the context variable, if any.
 *     """
 *     cdef PyObject *value = NULL             # <<<<<<<<<<<<<<
 *     PyContextVar_Get(var, <PyObject*>default_value, &value)
 *     # value of context variable or 'default_value'
*/
  __pyx_v_value = NULL;

  /* "cpython/contextvars.pxd":141
 *     """
 *     cdef PyObject *value = NULL
 *     PyContextVar_Get(var, <PyObject*>default_value, &value)             # <<<<<<<<<<<<<<
 *     # value of context variable or 'default_value'
 *     pyvalue = <object>value
*/
  __pyx_t_1 = PyContextVar_Get(__pyx_v_var, ((PyObject *)__pyx_v_default_value), (&__pyx_v_value)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 141, __pyx_L1_error)

  /* "cpython/contextvars.pxd":143
 *     PyContextVar_Get(var, <PyObject*>default_value, &value)
 *     # value of context variable or 'default_value'
 *     pyvalue = <object>value             # <<<<<<<<<<<<<<
 *     Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_value);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_v_pyvalue = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "cpython/contextvars.pxd":144
 *     # value of context variable or 'default_value'
 *     pyvalue = <object>value
 *     Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'             # <<<<<<<<<<<<<<
 *     return pyvalue
*/
  Py_XDECREF(__pyx_v_value);

  /* "cpython/contextvars.pxd":145
 *     pyvalue = <object>value
 *     Py_XDECREF(value)  # PyContextVar_Get() returned an owned reference as 'PyObject*'
 *     return pyvalue             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_pyvalue);
  __pyx_r = __pyx_v_pyvalue;
  goto __pyx_L0;

  /* "cpython/contextvars.pxd":133
 * 
 * 
 * @_cython.c_compile_guard("!CYTHON_COMPILING_IN_LIMITED_API")             # <<<<<<<<<<<<<<
 * cdef inline object get_value_no_default(var, default_value=None):
 *     """Return a new reference to the value of the context variable,
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cpython.contextvars.get_value_no_default", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pyvalue);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
#endif /*!(#if !CYTHON_COMPILING_IN_LIMITED_API)*/

/* "cpython/datetime.pxd":44
 * 
 *     ctypedef extern class datetime.date[object PyDateTime_Date]:
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int year(self) noexcept:
 *             return PyDateTime_GET_YEAR(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4date_4year_year(PyDateTime_Date *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":46
 *         @property
 *         cdef inline int year(self) noexcept:
 *             return PyDateTime_GET_YEAR(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_GET_YEAR(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":44
 * 
 *     ctypedef extern class datetime.date[object PyDateTime_Date]:
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int year(self) noexcept:
 *             return PyDateTime_GET_YEAR(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":48
 *             return PyDateTime_GET_YEAR(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int month(self) noexcept:
 *             return PyDateTime_GET_MONTH(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4date_5month_month(PyDateTime_Date *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":50
 *         @property
 *         cdef inline int month(self) noexcept:
 *             return PyDateTime_GET_MONTH(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_GET_MONTH(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":48
 *             return PyDateTime_GET_YEAR(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int month(self) noexcept:
 *             return PyDateTime_GET_MONTH(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":52
 *             return PyDateTime_GET_MONTH(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int day(self) noexcept:
 *             return PyDateTime_GET_DAY(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4date_3day_day(PyDateTime_Date *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":54
 *         @property
 *         cdef inline int day(self) noexcept:
 *             return PyDateTime_GET_DAY(self)             # <<<<<<<<<<<<<<
 * 
 *     ctypedef extern class datetime.time[object PyDateTime_Time]:
*/
  __pyx_r = PyDateTime_GET_DAY(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":52
 *             return PyDateTime_GET_MONTH(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int day(self) noexcept:
 *             return PyDateTime_GET_DAY(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":57
 * 
 *     ctypedef extern class datetime.time[object PyDateTime_Time]:
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int hour(self) noexcept:
 *             return PyDateTime_TIME_GET_HOUR(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4time_4hour_hour(PyDateTime_Time *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":59
 *         @property
 *         cdef inline int hour(self) noexcept:
 *             return PyDateTime_TIME_GET_HOUR(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_TIME_GET_HOUR(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":57
 * 
 *     ctypedef extern class datetime.time[object PyDateTime_Time]:
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int hour(self) noexcept:
 *             return PyDateTime_TIME_GET_HOUR(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":61
 *             return PyDateTime_TIME_GET_HOUR(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int minute(self) noexcept:
 *             return PyDateTime_TIME_GET_MINUTE(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4time_6minute_minute(PyDateTime_Time *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":63
 *         @property
 *         cdef inline int minute(self) noexcept:
 *             return PyDateTime_TIME_GET_MINUTE(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_TIME_GET_MINUTE(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":61
 *             return PyDateTime_TIME_GET_HOUR(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int minute(self) noexcept:
 *             return PyDateTime_TIME_GET_MINUTE(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":65
 *             return PyDateTime_TIME_GET_MINUTE(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int second(self) noexcept:
 *             return PyDateTime_TIME_GET_SECOND(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4time_6second_second(PyDateTime_Time *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":67
 *         @property
 *         cdef inline int second(self) noexcept:
 *             return PyDateTime_TIME_GET_SECOND(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_TIME_GET_SECOND(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":65
 *             return PyDateTime_TIME_GET_MINUTE(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int second(self) noexcept:
 *             return PyDateTime_TIME_GET_SECOND(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":69
 *             return PyDateTime_TIME_GET_SECOND(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int microsecond(self) noexcept:
 *             return PyDateTime_TIME_GET_MICROSECOND(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4time_11microsecond_microsecond(PyDateTime_Time *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":71
 *         @property
 *         cdef inline int microsecond(self) noexcept:
 *             return PyDateTime_TIME_GET_MICROSECOND(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_TIME_GET_MICROSECOND(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":69
 *             return PyDateTime_TIME_GET_SECOND(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int microsecond(self) noexcept:
 *             return PyDateTime_TIME_GET_MICROSECOND(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":73
 *             return PyDateTime_TIME_GET_MICROSECOND(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline object tzinfo(self):
 *             return <object>PyDateTime_TIME_GET_TZINFO(self)
*/

static CYTHON_INLINE PyObject *__pyx_f_7cpython_8datetime_4time_6tzinfo_tzinfo(PyDateTime_Time *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  __Pyx_RefNannySetupContext("tzinfo", 0);

  /* "cpython/datetime.pxd":75
 *         @property
 *         cdef inline object tzinfo(self):
 *             return <object>PyDateTime_TIME_GET_TZINFO(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyDateTime_TIME_GET_TZINFO(((PyObject *)__pyx_v_self));
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":73
 *             return PyDateTime_TIME_GET_MICROSECOND(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline object tzinfo(self):
 *             return <object>PyDateTime_TIME_GET_TZINFO(self)
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":77
 *             return <object>PyDateTime_TIME_GET_TZINFO(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int fold(self) noexcept:
 *             # For Python < 3.6 this returns 0 no matter what
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_4time_4fold_fold(PyDateTime_Time *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":80
 *         cdef inline int fold(self) noexcept:
 *             # For Python < 3.6 this returns 0 no matter what
 *             return PyDateTime_TIME_GET_FOLD(self)             # <<<<<<<<<<<<<<
 * 
 *     ctypedef extern class datetime.datetime[object PyDateTime_DateTime]:
*/
  __pyx_r = PyDateTime_TIME_GET_FOLD(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":77
 *             return <object>PyDateTime_TIME_GET_TZINFO(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int fold(self) noexcept:
 *             # For Python < 3.6 this returns 0 no matter what
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":83
 * 
 *     ctypedef extern class datetime.datetime[object PyDateTime_DateTime]:
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int year(self) noexcept:
 *             return PyDateTime_GET_YEAR(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_4year_year(PyDateTime_DateTime *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":85
 *         @property
 *         cdef inline int year(self) noexcept:
 *             return PyDateTime_GET_YEAR(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_GET_YEAR(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":83
 * 
 *     ctypedef extern class datetime.datetime[object PyDateTime_DateTime]:
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int year(self) noexcept:
 *             return PyDateTime_GET_YEAR(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":87
 *             return PyDateTime_GET_YEAR(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int month(self) noexcept:
 *             return PyDateTime_GET_MONTH(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_5month_month(PyDateTime_DateTime *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":89
 *         @property
 *         cdef inline int month(self) noexcept:
 *             return PyDateTime_GET_MONTH(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_GET_MONTH(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":87
 *             return PyDateTime_GET_YEAR(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int month(self) noexcept:
 *             return PyDateTime_GET_MONTH(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":91
 *             return PyDateTime_GET_MONTH(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int day(self) noexcept:
 *             return PyDateTime_GET_DAY(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_3day_day(PyDateTime_DateTime *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":93
 *         @property
 *         cdef inline int day(self) noexcept:
 *             return PyDateTime_GET_DAY(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_GET_DAY(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":91
 *             return PyDateTime_GET_MONTH(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int day(self) noexcept:
 *             return PyDateTime_GET_DAY(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":95
 *             return PyDateTime_GET_DAY(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int hour(self) noexcept:
 *             return PyDateTime_DATE_GET_HOUR(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_4hour_hour(PyDateTime_DateTime *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":97
 *         @property
 *         cdef inline int hour(self) noexcept:
 *             return PyDateTime_DATE_GET_HOUR(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_DATE_GET_HOUR(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":95
 *             return PyDateTime_GET_DAY(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int hour(self) noexcept:
 *             return PyDateTime_DATE_GET_HOUR(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":99
 *             return PyDateTime_DATE_GET_HOUR(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int minute(self) noexcept:
 *             return PyDateTime_DATE_GET_MINUTE(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_6minute_minute(PyDateTime_DateTime *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":101
 *         @property
 *         cdef inline int minute(self) noexcept:
 *             return PyDateTime_DATE_GET_MINUTE(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_DATE_GET_MINUTE(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":99
 *             return PyDateTime_DATE_GET_HOUR(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int minute(self) noexcept:
 *             return PyDateTime_DATE_GET_MINUTE(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":103
 *             return PyDateTime_DATE_GET_MINUTE(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int second(self) noexcept:
 *             return PyDateTime_DATE_GET_SECOND(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_6second_second(PyDateTime_DateTime *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":105
 *         @property
 *         cdef inline int second(self) noexcept:
 *             return PyDateTime_DATE_GET_SECOND(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_DATE_GET_SECOND(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":103
 *             return PyDateTime_DATE_GET_MINUTE(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int second(self) noexcept:
 *             return PyDateTime_DATE_GET_SECOND(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":107
 *             return PyDateTime_DATE_GET_SECOND(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int microsecond(self) noexcept:
 *             return PyDateTime_DATE_GET_MICROSECOND(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_11microsecond_microsecond(PyDateTime_DateTime *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":109
 *         @property
 *         cdef inline int microsecond(self) noexcept:
 *             return PyDateTime_DATE_GET_MICROSECOND(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_DATE_GET_MICROSECOND(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":107
 *             return PyDateTime_DATE_GET_SECOND(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int microsecond(self) noexcept:
 *             return PyDateTime_DATE_GET_MICROSECOND(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":111
 *             return PyDateTime_DATE_GET_MICROSECOND(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline object tzinfo(self):
 *             return <object>PyDateTime_DATE_GET_TZINFO(self)
*/

static CYTHON_INLINE PyObject *__pyx_f_7cpython_8datetime_8datetime_6tzinfo_tzinfo(PyDateTime_DateTime *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  __Pyx_RefNannySetupContext("tzinfo", 0);

  /* "cpython/datetime.pxd":113
 *         @property
 *         cdef inline object tzinfo(self):
 *             return <object>PyDateTime_DATE_GET_TZINFO(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyDateTime_DATE_GET_TZINFO(((PyObject *)__pyx_v_self));
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":111
 *             return PyDateTime_DATE_GET_MICROSECOND(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline object tzinfo(self):
 *             return <object>PyDateTime_DATE_GET_TZINFO(self)
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":115
 *             return <object>PyDateTime_DATE_GET_TZINFO(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int fold(self) noexcept:
 *             # For Python < 3.6 this returns 0 no matter what
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_8datetime_4fold_fold(PyDateTime_DateTime *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":118
 *         cdef inline int fold(self) noexcept:
 *             # For Python < 3.6 this returns 0 no matter what
 *             return PyDateTime_DATE_GET_FOLD(self)             # <<<<<<<<<<<<<<
 * 
 *     ctypedef extern class datetime.timedelta[object PyDateTime_Delta]:
*/
  __pyx_r = PyDateTime_DATE_GET_FOLD(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":115
 *             return <object>PyDateTime_DATE_GET_TZINFO(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int fold(self) noexcept:
 *             # For Python < 3.6 this returns 0 no matter what
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":121
 * 
 *     ctypedef extern class datetime.timedelta[object PyDateTime_Delta]:
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int day(self) noexcept:
 *             return PyDateTime_DELTA_GET_DAYS(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_9timedelta_3day_day(PyDateTime_Delta *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":123
 *         @property
 *         cdef inline int day(self) noexcept:
 *             return PyDateTime_DELTA_GET_DAYS(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_DELTA_GET_DAYS(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":121
 * 
 *     ctypedef extern class datetime.timedelta[object PyDateTime_Delta]:
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int day(self) noexcept:
 *             return PyDateTime_DELTA_GET_DAYS(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":125
 *             return PyDateTime_DELTA_GET_DAYS(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int second(self) noexcept:
 *             return PyDateTime_DELTA_GET_SECONDS(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_9timedelta_6second_second(PyDateTime_Delta *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":127
 *         @property
 *         cdef inline int second(self) noexcept:
 *             return PyDateTime_DELTA_GET_SECONDS(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
*/
  __pyx_r = PyDateTime_DELTA_GET_SECONDS(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":125
 *             return PyDateTime_DELTA_GET_DAYS(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int second(self) noexcept:
 *             return PyDateTime_DELTA_GET_SECONDS(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":129
 *             return PyDateTime_DELTA_GET_SECONDS(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int microsecond(self) noexcept:
 *             return PyDateTime_DELTA_GET_MICROSECONDS(self)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_9timedelta_11microsecond_microsecond(PyDateTime_Delta *__pyx_v_self) {
  int __pyx_r;

  /* "cpython/datetime.pxd":131
 *         @property
 *         cdef inline int microsecond(self) noexcept:
 *             return PyDateTime_DELTA_GET_MICROSECONDS(self)             # <<<<<<<<<<<<<<
 * 
 *     ctypedef extern class datetime.tzinfo[object PyDateTime_TZInfo]:
*/
  __pyx_r = PyDateTime_DELTA_GET_MICROSECONDS(((PyObject *)__pyx_v_self));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":129
 *             return PyDateTime_DELTA_GET_SECONDS(self)
 * 
 *         @property             # <<<<<<<<<<<<<<
 *         cdef inline int microsecond(self) noexcept:
 *             return PyDateTime_DELTA_GET_MICROSECONDS(self)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":255
 * # Datetime C API initialization function.
 * # You have to call it before any usage of DateTime CAPI functions.
 * cdef inline void import_datetime() noexcept:             # <<<<<<<<<<<<<<
 *     PyDateTime_IMPORT
 * 
*/

static CYTHON_INLINE void __pyx_f_7cpython_8datetime_import_datetime(void) {

  /* "cpython/datetime.pxd":256
 * # You have to call it before any usage of DateTime CAPI functions.
 * cdef inline void import_datetime() noexcept:
 *     PyDateTime_IMPORT             # <<<<<<<<<<<<<<
 * 
 * # Create date object using DateTime CAPI factory function.
*/
  (void)(PyDateTime_IMPORT);

  /* "cpython/datetime.pxd":255
 * # Datetime C API initialization function.
 * # You have to call it before any usage of DateTime CAPI functions.
 * cdef inline void import_datetime() noexcept:             # <<<<<<<<<<<<<<
 *     PyDateTime_IMPORT
 * 
*/

  /* function exit code */
}

/* "cpython/datetime.pxd":260
 * # Create date object using DateTime CAPI factory function.
 * # Note, there are no range checks for any of the arguments.
 * cdef inline date date_new(int year, int month, int day):             # <<<<<<<<<<<<<<
 *     return PyDateTimeAPI.Date_FromDate(year, month, day, PyDateTimeAPI.DateType)
 * 
*/

static CYTHON_INLINE PyDateTime_Date *__pyx_f_7cpython_8datetime_date_new(int __pyx_v_year, int __pyx_v_month, int __pyx_v_day) {
  PyDateTime_Date *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("date_new", 0);

  /* "cpython/datetime.pxd":261
 * # Note, there are no range checks for any of the arguments.
 * cdef inline date date_new(int year, int month, int day):
 *     return PyDateTimeAPI.Date_FromDate(year, month, day, PyDateTimeAPI.DateType)             # <<<<<<<<<<<<<<
 * 
 * # Create time object using DateTime CAPI factory function
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = ((PyObject *)PyDateTimeAPI->Date_FromDate(__pyx_v_year, __pyx_v_month, __pyx_v_day, PyDateTimeAPI->DateType)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((PyDateTime_Date *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cpython/datetime.pxd":260
 * # Create date object using DateTime CAPI factory function.
 * # Note, there are no range checks for any of the arguments.
 * cdef inline date date_new(int year, int month, int day):             # <<<<<<<<<<<<<<
 *     return PyDateTimeAPI.Date_FromDate(year, month, day, PyDateTimeAPI.DateType)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cpython.datetime.date_new", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":265
 * # Create time object using DateTime CAPI factory function
 * # Note, there are no range checks for any of the arguments.
 * cdef inline time time_new(int hour, int minute, int second, int microsecond, object tz, int fold=0):             # <<<<<<<<<<<<<<
 *     return __Pyx_DateTime_TimeWithFold(hour, minute, second, microsecond, tz, fold)
 * 
*/

static CYTHON_INLINE PyDateTime_Time *__pyx_f_7cpython_8datetime_time_new(int __pyx_v_hour, int __pyx_v_minute, int __pyx_v_second, int __pyx_v_microsecond, PyObject *__pyx_v_tz, struct __pyx_opt_args_7cpython_8datetime_time_new *__pyx_optional_args) {
  int __pyx_v_fold = ((int)0);
  PyDateTime_Time *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("time_new", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fold = __pyx_optional_args->fold;
    }
  }

  /* "cpython/datetime.pxd":266
 * # Note, there are no range checks for any of the arguments.
 * cdef inline time time_new(int hour, int minute, int second, int microsecond, object tz, int fold=0):
 *     return __Pyx_DateTime_TimeWithFold(hour, minute, second, microsecond, tz, fold)             # <<<<<<<<<<<<<<
 * 
 * # Create datetime object using DateTime CAPI factory function.
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = ((PyObject *)__Pyx_DateTime_TimeWithFold(__pyx_v_hour, __pyx_v_minute, __pyx_v_second, __pyx_v_microsecond, __pyx_v_tz, __pyx_v_fold)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_time))))) __PYX_ERR(3, 266, __pyx_L1_error)
  __pyx_r = ((PyDateTime_Time *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cpython/datetime.pxd":265
 * # Create time object using DateTime CAPI factory function
 * # Note, there are no range checks for any of the arguments.
 * cdef inline time time_new(int hour, int minute, int second, int microsecond, object tz, int fold=0):             # <<<<<<<<<<<<<<
 *     return __Pyx_DateTime_TimeWithFold(hour, minute, second, microsecond, tz, fold)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cpython.datetime.time_new", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":270
 * # Create datetime object using DateTime CAPI factory function.
 * # Note, there are no range checks for any of the arguments.
 * cdef inline datetime datetime_new(int year, int month, int day, int hour, int minute, int second, int microsecond, object tz, int fold=0):             # <<<<<<<<<<<<<<
 *     return __Pyx_DateTime_DateTimeWithFold(year, month, day, hour, minute, second, microsecond, tz, fold)
 * 
*/

static CYTHON_INLINE PyDateTime_DateTime *__pyx_f_7cpython_8datetime_datetime_new(int __pyx_v_year, int __pyx_v_month, int __pyx_v_day, int __pyx_v_hour, int __pyx_v_minute, int __pyx_v_second, int __pyx_v_microsecond, PyObject *__pyx_v_tz, struct __pyx_opt_args_7cpython_8datetime_datetime_new *__pyx_optional_args) {
  int __pyx_v_fold = ((int)0);
  PyDateTime_DateTime *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("datetime_new", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fold = __pyx_optional_args->fold;
    }
  }

  /* "cpython/datetime.pxd":271
 * # Note, there are no range checks for any of the arguments.
 * cdef inline datetime datetime_new(int year, int month, int day, int hour, int minute, int second, int microsecond, object tz, int fold=0):
 *     return __Pyx_DateTime_DateTimeWithFold(year, month, day, hour, minute, second, microsecond, tz, fold)             # <<<<<<<<<<<<<<
 * 
 * # Create timedelta object using DateTime CAPI factory function.
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = ((PyObject *)__Pyx_DateTime_DateTimeWithFold(__pyx_v_year, __pyx_v_month, __pyx_v_day, __pyx_v_hour, __pyx_v_minute, __pyx_v_second, __pyx_v_microsecond, __pyx_v_tz, __pyx_v_fold)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((PyDateTime_DateTime *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cpython/datetime.pxd":270
 * # Create datetime object using DateTime CAPI factory function.
 * # Note, there are no range checks for any of the arguments.
 * cdef inline datetime datetime_new(int year, int month, int day, int hour, int minute, int second, int microsecond, object tz, int fold=0):             # <<<<<<<<<<<<<<
 *     return __Pyx_DateTime_DateTimeWithFold(year, month, day, hour, minute, second, microsecond, tz, fold)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cpython.datetime.datetime_new", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":275
 * # Create timedelta object using DateTime CAPI factory function.
 * # Note, there are no range checks for any of the arguments.
 * cdef inline timedelta timedelta_new(int days, int seconds, int useconds):             # <<<<<<<<<<<<<<
 *     return PyDateTimeAPI.Delta_FromDelta(days, seconds, useconds, 1, PyDateTimeAPI.DeltaType)
 * 
*/

static CYTHON_INLINE PyDateTime_Delta *__pyx_f_7cpython_8datetime_timedelta_new(int __pyx_v_days, int __pyx_v_seconds, int __pyx_v_useconds) {
  PyDateTime_Delta *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("timedelta_new", 0);

  /* "cpython/datetime.pxd":276
 * # Note, there are no range checks for any of the arguments.
 * cdef inline timedelta timedelta_new(int days, int seconds, int useconds):
 *     return PyDateTimeAPI.Delta_FromDelta(days, seconds, useconds, 1, PyDateTimeAPI.DeltaType)             # <<<<<<<<<<<<<<
 * 
 * # Create timedelta object using DateTime CAPI factory function.
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = ((PyObject *)PyDateTimeAPI->Delta_FromDelta(__pyx_v_days, __pyx_v_seconds, __pyx_v_useconds, 1, PyDateTimeAPI->DeltaType)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((PyDateTime_Delta *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "cpython/datetime.pxd":275
 * # Create timedelta object using DateTime CAPI factory function.
 * # Note, there are no range checks for any of the arguments.
 * cdef inline timedelta timedelta_new(int days, int seconds, int useconds):             # <<<<<<<<<<<<<<
 *     return PyDateTimeAPI.Delta_FromDelta(days, seconds, useconds, 1, PyDateTimeAPI.DeltaType)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cpython.datetime.timedelta_new", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":279
 * 
 * # Create timedelta object using DateTime CAPI factory function.
 * cdef inline object timezone_new(object offset, object name=None):             # <<<<<<<<<<<<<<
 *     return __Pyx_TimeZone_FromOffsetAndName(offset, <PyObject*>name if name is not None else NULL)
 * 
*/

static CYTHON_INLINE PyObject *__pyx_f_7cpython_8datetime_timezone_new(PyObject *__pyx_v_offset, struct __pyx_opt_args_7cpython_8datetime_timezone_new *__pyx_optional_args) {
  PyObject *__pyx_v_name = ((PyObject *)Py_None);
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("timezone_new", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_name = __pyx_optional_args->name;
    }
  }

  /* "cpython/datetime.pxd":280
 * # Create timedelta object using DateTime CAPI factory function.
 * cdef inline object timezone_new(object offset, object name=None):
 *     return __Pyx_TimeZone_FromOffsetAndName(offset, <PyObject*>name if name is not None else NULL)             # <<<<<<<<<<<<<<
 * 
 * # Create datetime object using DB API constructor.
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = (__pyx_v_name != Py_None);
  if (__pyx_t_2) {
    __pyx_t_1 = ((PyObject *)__pyx_v_name);
  } else {
    __pyx_t_1 = NULL;
  }
  __pyx_t_3 = __Pyx_TimeZone_FromOffsetAndName(__pyx_v_offset, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cpython/datetime.pxd":279
 * 
 * # Create timedelta object using DateTime CAPI factory function.
 * cdef inline object timezone_new(object offset, object name=None):             # <<<<<<<<<<<<<<
 *     return __Pyx_TimeZone_FromOffsetAndName(offset, <PyObject*>name if name is not None else NULL)
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cpython.datetime.timezone_new", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":283
 * 
 * # Create datetime object using DB API constructor.
 * cdef inline datetime datetime_from_timestamp(timestamp, tz=None):             # <<<<<<<<<<<<<<
 *     return PyDateTimeAPI.DateTime_FromTimestamp(
 *         <PyObject*>PyDateTimeAPI.DateTimeType, (timestamp, tz) if tz is not None else (timestamp,), NULL)
*/

static CYTHON_INLINE PyDateTime_DateTime *__pyx_f_7cpython_8datetime_datetime_from_timestamp(PyObject *__pyx_v_timestamp, struct __pyx_opt_args_7cpython_8datetime_datetime_from_timestamp *__pyx_optional_args) {
  PyObject *__pyx_v_tz = ((PyObject *)Py_None);
  PyDateTime_DateTime *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("datetime_from_timestamp", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_tz = __pyx_optional_args->tz;
    }
  }

  /* "cpython/datetime.pxd":284
 * # Create datetime object using DB API constructor.
 * cdef inline datetime datetime_from_timestamp(timestamp, tz=None):
 *     return PyDateTimeAPI.DateTime_FromTimestamp(             # <<<<<<<<<<<<<<
 *         <PyObject*>PyDateTimeAPI.DateTimeType, (timestamp, tz) if tz is not None else (timestamp,), NULL)
 * 
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);

  /* "cpython/datetime.pxd":285
 * cdef inline datetime datetime_from_timestamp(timestamp, tz=None):
 *     return PyDateTimeAPI.DateTime_FromTimestamp(
 *         <PyObject*>PyDateTimeAPI.DateTimeType, (timestamp, tz) if tz is not None else (timestamp,), NULL)             # <<<<<<<<<<<<<<
 * 
 * # Create date object using DB API constructor.
*/
  __pyx_t_2 = (__pyx_v_tz != Py_None);
  if (__pyx_t_2) {
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_timestamp);
    __Pyx_GIVEREF(__pyx_v_timestamp);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_timestamp) != (0)) __PYX_ERR(3, 285, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_tz);
    __Pyx_GIVEREF(__pyx_v_tz);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_tz) != (0)) __PYX_ERR(3, 285, __pyx_L1_error);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_timestamp);
    __Pyx_GIVEREF(__pyx_v_timestamp);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_timestamp) != (0)) __PYX_ERR(3, 285, __pyx_L1_error);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  }

  /* "cpython/datetime.pxd":284
 * # Create datetime object using DB API constructor.
 * cdef inline datetime datetime_from_timestamp(timestamp, tz=None):
 *     return PyDateTimeAPI.DateTime_FromTimestamp(             # <<<<<<<<<<<<<<
 *         <PyObject*>PyDateTimeAPI.DateTimeType, (timestamp, tz) if tz is not None else (timestamp,), NULL)
 * 
*/
  __pyx_t_3 = ((PyObject *)PyDateTimeAPI->DateTime_FromTimestamp(((PyObject *)PyDateTimeAPI->DateTimeType), __pyx_t_1, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((PyDateTime_DateTime *)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "cpython/datetime.pxd":283
 * 
 * # Create datetime object using DB API constructor.
 * cdef inline datetime datetime_from_timestamp(timestamp, tz=None):             # <<<<<<<<<<<<<<
 *     return PyDateTimeAPI.DateTime_FromTimestamp(
 *         <PyObject*>PyDateTimeAPI.DateTimeType, (timestamp, tz) if tz is not None else (timestamp,), NULL)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("cpython.datetime.datetime_from_timestamp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":288
 * 
 * # Create date object using DB API constructor.
 * cdef inline date date_from_timestamp(timestamp):             # <<<<<<<<<<<<<<
 *     return PyDateTimeAPI.Date_FromTimestamp(<PyObject*>PyDateTimeAPI.DateType, (timestamp,))
 * 
*/

static CYTHON_INLINE PyDateTime_Date *__pyx_f_7cpython_8datetime_date_from_timestamp(PyObject *__pyx_v_timestamp) {
  PyDateTime_Date *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("date_from_timestamp", 0);

  /* "cpython/datetime.pxd":289
 * # Create date object using DB API constructor.
 * cdef inline date date_from_timestamp(timestamp):
 *     return PyDateTimeAPI.Date_FromTimestamp(<PyObject*>PyDateTimeAPI.DateType, (timestamp,))             # <<<<<<<<<<<<<<
 * 
 * # More recognizable getters for date/time/datetime/timedelta.
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_timestamp);
  __Pyx_GIVEREF(__pyx_v_timestamp);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_timestamp) != (0)) __PYX_ERR(3, 289, __pyx_L1_error);
  __pyx_t_2 = ((PyObject *)PyDateTimeAPI->Date_FromTimestamp(((PyObject *)PyDateTimeAPI->DateType), __pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((PyDateTime_Date *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cpython/datetime.pxd":288
 * 
 * # Create date object using DB API constructor.
 * cdef inline date date_from_timestamp(timestamp):             # <<<<<<<<<<<<<<
 *     return PyDateTimeAPI.Date_FromTimestamp(<PyObject*>PyDateTimeAPI.DateType, (timestamp,))
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cpython.datetime.date_from_timestamp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":297
 * 
 * # Get UTC singleton
 * cdef inline object get_utc():             # <<<<<<<<<<<<<<
 *     return <object>__Pyx_TimeZone_UTC
 * 
*/

static CYTHON_INLINE PyObject *__pyx_f_7cpython_8datetime_get_utc(void) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_utc", 0);

  /* "cpython/datetime.pxd":298
 * # Get UTC singleton
 * cdef inline object get_utc():
 *     return <object>__Pyx_TimeZone_UTC             # <<<<<<<<<<<<<<
 * 
 * # Get tzinfo of time
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__Pyx_TimeZone_UTC));
  __pyx_r = ((PyObject *)__Pyx_TimeZone_UTC);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":297
 * 
 * # Get UTC singleton
 * cdef inline object get_utc():             # <<<<<<<<<<<<<<
 *     return <object>__Pyx_TimeZone_UTC
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":301
 * 
 * # Get tzinfo of time
 * cdef inline object time_tzinfo(object o):             # <<<<<<<<<<<<<<
 *     return <object>PyDateTime_TIME_GET_TZINFO(o)
 * 
*/

static CYTHON_INLINE PyObject *__pyx_f_7cpython_8datetime_time_tzinfo(PyObject *__pyx_v_o) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  __Pyx_RefNannySetupContext("time_tzinfo", 0);

  /* "cpython/datetime.pxd":302
 * # Get tzinfo of time
 * cdef inline object time_tzinfo(object o):
 *     return <object>PyDateTime_TIME_GET_TZINFO(o)             # <<<<<<<<<<<<<<
 * 
 * # Get tzinfo of datetime
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyDateTime_TIME_GET_TZINFO(__pyx_v_o);
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":301
 * 
 * # Get tzinfo of time
 * cdef inline object time_tzinfo(object o):             # <<<<<<<<<<<<<<
 *     return <object>PyDateTime_TIME_GET_TZINFO(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":305
 * 
 * # Get tzinfo of datetime
 * cdef inline object datetime_tzinfo(object o):             # <<<<<<<<<<<<<<
 *     return <object>PyDateTime_DATE_GET_TZINFO(o)
 * 
*/

static CYTHON_INLINE PyObject *__pyx_f_7cpython_8datetime_datetime_tzinfo(PyObject *__pyx_v_o) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1;
  __Pyx_RefNannySetupContext("datetime_tzinfo", 0);

  /* "cpython/datetime.pxd":306
 * # Get tzinfo of datetime
 * cdef inline object datetime_tzinfo(object o):
 *     return <object>PyDateTime_DATE_GET_TZINFO(o)             # <<<<<<<<<<<<<<
 * 
 * # Get year of date
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyDateTime_DATE_GET_TZINFO(__pyx_v_o);
  __Pyx_INCREF(((PyObject *)__pyx_t_1));
  __pyx_r = ((PyObject *)__pyx_t_1);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":305
 * 
 * # Get tzinfo of datetime
 * cdef inline object datetime_tzinfo(object o):             # <<<<<<<<<<<<<<
 *     return <object>PyDateTime_DATE_GET_TZINFO(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cpython/datetime.pxd":309
 * 
 * # Get year of date
 * cdef inline int date_year(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_YEAR(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_date_year(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":310
 * # Get year of date
 * cdef inline int date_year(object o) noexcept:
 *     return PyDateTime_GET_YEAR(o)             # <<<<<<<<<<<<<<
 * 
 * # Get month of date
*/
  __pyx_r = PyDateTime_GET_YEAR(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":309
 * 
 * # Get year of date
 * cdef inline int date_year(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_YEAR(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":313
 * 
 * # Get month of date
 * cdef inline int date_month(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_MONTH(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_date_month(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":314
 * # Get month of date
 * cdef inline int date_month(object o) noexcept:
 *     return PyDateTime_GET_MONTH(o)             # <<<<<<<<<<<<<<
 * 
 * # Get day of date
*/
  __pyx_r = PyDateTime_GET_MONTH(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":313
 * 
 * # Get month of date
 * cdef inline int date_month(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_MONTH(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":317
 * 
 * # Get day of date
 * cdef inline int date_day(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_DAY(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_date_day(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":318
 * # Get day of date
 * cdef inline int date_day(object o) noexcept:
 *     return PyDateTime_GET_DAY(o)             # <<<<<<<<<<<<<<
 * 
 * # Get year of datetime
*/
  __pyx_r = PyDateTime_GET_DAY(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":317
 * 
 * # Get day of date
 * cdef inline int date_day(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_DAY(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":321
 * 
 * # Get year of datetime
 * cdef inline int datetime_year(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_YEAR(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_datetime_year(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":322
 * # Get year of datetime
 * cdef inline int datetime_year(object o) noexcept:
 *     return PyDateTime_GET_YEAR(o)             # <<<<<<<<<<<<<<
 * 
 * # Get month of datetime
*/
  __pyx_r = PyDateTime_GET_YEAR(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":321
 * 
 * # Get year of datetime
 * cdef inline int datetime_year(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_YEAR(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":325
 * 
 * # Get month of datetime
 * cdef inline int datetime_month(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_MONTH(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_datetime_month(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":326
 * # Get month of datetime
 * cdef inline int datetime_month(object o) noexcept:
 *     return PyDateTime_GET_MONTH(o)             # <<<<<<<<<<<<<<
 * 
 * # Get day of datetime
*/
  __pyx_r = PyDateTime_GET_MONTH(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":325
 * 
 * # Get month of datetime
 * cdef inline int datetime_month(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_MONTH(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":329
 * 
 * # Get day of datetime
 * cdef inline int datetime_day(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_DAY(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_datetime_day(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":330
 * # Get day of datetime
 * cdef inline int datetime_day(object o) noexcept:
 *     return PyDateTime_GET_DAY(o)             # <<<<<<<<<<<<<<
 * 
 * # Get hour of time
*/
  __pyx_r = PyDateTime_GET_DAY(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":329
 * 
 * # Get day of datetime
 * cdef inline int datetime_day(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_GET_DAY(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":333
 * 
 * # Get hour of time
 * cdef inline int time_hour(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_TIME_GET_HOUR(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_time_hour(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":334
 * # Get hour of time
 * cdef inline int time_hour(object o) noexcept:
 *     return PyDateTime_TIME_GET_HOUR(o)             # <<<<<<<<<<<<<<
 * 
 * # Get minute of time
*/
  __pyx_r = PyDateTime_TIME_GET_HOUR(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":333
 * 
 * # Get hour of time
 * cdef inline int time_hour(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_TIME_GET_HOUR(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":337
 * 
 * # Get minute of time
 * cdef inline int time_minute(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_TIME_GET_MINUTE(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_time_minute(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":338
 * # Get minute of time
 * cdef inline int time_minute(object o) noexcept:
 *     return PyDateTime_TIME_GET_MINUTE(o)             # <<<<<<<<<<<<<<
 * 
 * # Get second of time
*/
  __pyx_r = PyDateTime_TIME_GET_MINUTE(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":337
 * 
 * # Get minute of time
 * cdef inline int time_minute(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_TIME_GET_MINUTE(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":341
 * 
 * # Get second of time
 * cdef inline int time_second(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_TIME_GET_SECOND(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_time_second(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":342
 * # Get second of time
 * cdef inline int time_second(object o) noexcept:
 *     return PyDateTime_TIME_GET_SECOND(o)             # <<<<<<<<<<<<<<
 * 
 * # Get microsecond of time
*/
  __pyx_r = PyDateTime_TIME_GET_SECOND(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":341
 * 
 * # Get second of time
 * cdef inline int time_second(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_TIME_GET_SECOND(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":345
 * 
 * # Get microsecond of time
 * cdef inline int time_microsecond(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_TIME_GET_MICROSECOND(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_time_microsecond(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":346
 * # Get microsecond of time
 * cdef inline int time_microsecond(object o) noexcept:
 *     return PyDateTime_TIME_GET_MICROSECOND(o)             # <<<<<<<<<<<<<<
 * 
 * # Get fold of time
*/
  __pyx_r = PyDateTime_TIME_GET_MICROSECOND(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":345
 * 
 * # Get microsecond of time
 * cdef inline int time_microsecond(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_TIME_GET_MICROSECOND(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":349
 * 
 * # Get fold of time
 * cdef inline int time_fold(object o) noexcept:             # <<<<<<<<<<<<<<
 *     # For Python < 3.6 this returns 0 no matter what
 *     return PyDateTime_TIME_GET_FOLD(o)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_time_fold(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":351
 * cdef inline int time_fold(object o) noexcept:
 *     # For Python < 3.6 this returns 0 no matter what
 *     return PyDateTime_TIME_GET_FOLD(o)             # <<<<<<<<<<<<<<
 * 
 * # Get hour of datetime
*/
  __pyx_r = PyDateTime_TIME_GET_FOLD(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":349
 * 
 * # Get fold of time
 * cdef inline int time_fold(object o) noexcept:             # <<<<<<<<<<<<<<
 *     # For Python < 3.6 this returns 0 no matter what
 *     return PyDateTime_TIME_GET_FOLD(o)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":354
 * 
 * # Get hour of datetime
 * cdef inline int datetime_hour(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DATE_GET_HOUR(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_datetime_hour(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":355
 * # Get hour of datetime
 * cdef inline int datetime_hour(object o) noexcept:
 *     return PyDateTime_DATE_GET_HOUR(o)             # <<<<<<<<<<<<<<
 * 
 * # Get minute of datetime
*/
  __pyx_r = PyDateTime_DATE_GET_HOUR(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":354
 * 
 * # Get hour of datetime
 * cdef inline int datetime_hour(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DATE_GET_HOUR(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":358
 * 
 * # Get minute of datetime
 * cdef inline int datetime_minute(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DATE_GET_MINUTE(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_datetime_minute(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":359
 * # Get minute of datetime
 * cdef inline int datetime_minute(object o) noexcept:
 *     return PyDateTime_DATE_GET_MINUTE(o)             # <<<<<<<<<<<<<<
 * 
 * # Get second of datetime
*/
  __pyx_r = PyDateTime_DATE_GET_MINUTE(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":358
 * 
 * # Get minute of datetime
 * cdef inline int datetime_minute(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DATE_GET_MINUTE(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":362
 * 
 * # Get second of datetime
 * cdef inline int datetime_second(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DATE_GET_SECOND(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_datetime_second(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":363
 * # Get second of datetime
 * cdef inline int datetime_second(object o) noexcept:
 *     return PyDateTime_DATE_GET_SECOND(o)             # <<<<<<<<<<<<<<
 * 
 * # Get microsecond of datetime
*/
  __pyx_r = PyDateTime_DATE_GET_SECOND(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":362
 * 
 * # Get second of datetime
 * cdef inline int datetime_second(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DATE_GET_SECOND(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":366
 * 
 * # Get microsecond of datetime
 * cdef inline int datetime_microsecond(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DATE_GET_MICROSECOND(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_datetime_microsecond(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":367
 * # Get microsecond of datetime
 * cdef inline int datetime_microsecond(object o) noexcept:
 *     return PyDateTime_DATE_GET_MICROSECOND(o)             # <<<<<<<<<<<<<<
 * 
 * # Get fold of datetime
*/
  __pyx_r = PyDateTime_DATE_GET_MICROSECOND(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":366
 * 
 * # Get microsecond of datetime
 * cdef inline int datetime_microsecond(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DATE_GET_MICROSECOND(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":370
 * 
 * # Get fold of datetime
 * cdef inline int datetime_fold(object o) noexcept:             # <<<<<<<<<<<<<<
 *     # For Python < 3.6 this returns 0 no matter what
 *     return PyDateTime_DATE_GET_FOLD(o)
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_datetime_fold(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":372
 * cdef inline int datetime_fold(object o) noexcept:
 *     # For Python < 3.6 this returns 0 no matter what
 *     return PyDateTime_DATE_GET_FOLD(o)             # <<<<<<<<<<<<<<
 * 
 * # Get days of timedelta
*/
  __pyx_r = PyDateTime_DATE_GET_FOLD(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":370
 * 
 * # Get fold of datetime
 * cdef inline int datetime_fold(object o) noexcept:             # <<<<<<<<<<<<<<
 *     # For Python < 3.6 this returns 0 no matter what
 *     return PyDateTime_DATE_GET_FOLD(o)
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":375
 * 
 * # Get days of timedelta
 * cdef inline int timedelta_days(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DELTA_GET_DAYS(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_timedelta_days(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":376
 * # Get days of timedelta
 * cdef inline int timedelta_days(object o) noexcept:
 *     return PyDateTime_DELTA_GET_DAYS(o)             # <<<<<<<<<<<<<<
 * 
 * # Get seconds of timedelta
*/
  __pyx_r = PyDateTime_DELTA_GET_DAYS(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":375
 * 
 * # Get days of timedelta
 * cdef inline int timedelta_days(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DELTA_GET_DAYS(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":379
 * 
 * # Get seconds of timedelta
 * cdef inline int timedelta_seconds(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DELTA_GET_SECONDS(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_timedelta_seconds(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":380
 * # Get seconds of timedelta
 * cdef inline int timedelta_seconds(object o) noexcept:
 *     return PyDateTime_DELTA_GET_SECONDS(o)             # <<<<<<<<<<<<<<
 * 
 * # Get microseconds of timedelta
*/
  __pyx_r = PyDateTime_DELTA_GET_SECONDS(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":379
 * 
 * # Get seconds of timedelta
 * cdef inline int timedelta_seconds(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DELTA_GET_SECONDS(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":383
 * 
 * # Get microseconds of timedelta
 * cdef inline int timedelta_microseconds(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DELTA_GET_MICROSECONDS(o)
 * 
*/

static CYTHON_INLINE int __pyx_f_7cpython_8datetime_timedelta_microseconds(PyObject *__pyx_v_o) {
  int __pyx_r;

  /* "cpython/datetime.pxd":384
 * # Get microseconds of timedelta
 * cdef inline int timedelta_microseconds(object o) noexcept:
 *     return PyDateTime_DELTA_GET_MICROSECONDS(o)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double total_seconds(timedelta obj) noexcept:
*/
  __pyx_r = PyDateTime_DELTA_GET_MICROSECONDS(__pyx_v_o);
  goto __pyx_L0;

  /* "cpython/datetime.pxd":383
 * 
 * # Get microseconds of timedelta
 * cdef inline int timedelta_microseconds(object o) noexcept:             # <<<<<<<<<<<<<<
 *     return PyDateTime_DELTA_GET_MICROSECONDS(o)
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "cpython/datetime.pxd":386
 *     return PyDateTime_DELTA_GET_MICROSECONDS(o)
 * 
 * cdef inline double total_seconds(timedelta obj) noexcept:             # <<<<<<<<<<<<<<
 *     # Mirrors the "timedelta.total_seconds()" method.
 *     # Note that this implementation is not guaranteed to give *exactly* the same
*/

static CYTHON_INLINE double __pyx_f_7cpython_8datetime_total_seconds(PyDateTime_Delta *__pyx_v_obj) {
  double __pyx_v_days;
  double __pyx_v_seconds;
  double __pyx_v_micros;
  double __pyx_r;

  /* "cpython/datetime.pxd":392
 *     cdef:
 *         double days, seconds, micros
 *     days = <double>PyDateTime_DELTA_GET_DAYS(obj)             # <<<<<<<<<<<<<<
 *     seconds = <double>PyDateTime_DELTA_GET_SECONDS(obj)
 *     micros = <double>PyDateTime_DELTA_GET_MICROSECONDS(obj)
*/
  __pyx_v_days = ((double)PyDateTime_DELTA_GET_DAYS(((PyObject *)__pyx_v_obj)));

  /* "cpython/datetime.pxd":393
 *         double days, seconds, micros
 *     days = <double>PyDateTime_DELTA_GET_DAYS(obj)
 *     seconds = <double>PyDateTime_DELTA_GET_SECONDS(obj)             # <<<<<<<<<<<<<<
 *     micros = <double>PyDateTime_DELTA_GET_MICROSECONDS(obj)
 *     return days * 24 * 3600 + seconds + micros / 1_000_000
*/
  __pyx_v_seconds = ((double)PyDateTime_DELTA_GET_SECONDS(((PyObject *)__pyx_v_obj)));

  /* "cpython/datetime.pxd":394
 *     days = <double>PyDateTime_DELTA_GET_DAYS(obj)
 *     seconds = <double>PyDateTime_DELTA_GET_SECONDS(obj)
 *     micros = <double>PyDateTime_DELTA_GET_MICROSECONDS(obj)             # <<<<<<<<<<<<<<
 *     return days * 24 * 3600 + seconds + micros / 1_000_000
*/
  __pyx_v_micros = ((double)PyDateTime_DELTA_GET_MICROSECONDS(((PyObject *)__pyx_v_obj)));

  /* "cpython/datetime.pxd":395
 *     seconds = <double>PyDateTime_DELTA_GET_SECONDS(obj)
 *     micros = <double>PyDateTime_DELTA_GET_MICROSECONDS(obj)
 *     return days * 24 * 3600 + seconds + micros / 1_000_000             # <<<<<<<<<<<<<<
*/
  __pyx_r = ((((__pyx_v_days * 24.0) * 3600.0) + __pyx_v_seconds) + (__pyx_v_micros / 1000000.0));
  goto __pyx_L0;

  /* "cpython/datetime.pxd":386
 *     return PyDateTime_DELTA_GET_MICROSECONDS(o)
 * 
 * cdef inline double total_seconds(timedelta obj) noexcept:             # <<<<<<<<<<<<<<
 *     # Mirrors the "timedelta.total_seconds()" method.
 *     # Note that this implementation is not guaranteed to give *exactly* the same
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "pyarrow/includes/common.pxd":151
 * 
 * 
 * cdef inline object PyObject_to_object(PyObject* o):             # <<<<<<<<<<<<<<
 *     # Cast to "object" increments reference count
 *     cdef object result = <object> o
*/

static CYTHON_INLINE PyObject *__pyx_f_7pyarrow_8includes_6common_PyObject_to_object(PyObject *__pyx_v_o) {
  PyObject *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("PyObject_to_object", 0);

  /* "pyarrow/includes/common.pxd":153
 * cdef inline object PyObject_to_object(PyObject* o):
 *     # Cast to "object" increments reference count
 *     cdef object result = <object> o             # <<<<<<<<<<<<<<
 *     cpython.Py_DECREF(result)
 *     return result
*/
  __pyx_t_1 = ((PyObject *)__pyx_v_o);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_v_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pyarrow/includes/common.pxd":154
 *     # Cast to "object" increments reference count
 *     cdef object result = <object> o
 *     cpython.Py_DECREF(result)             # <<<<<<<<<<<<<<
 *     return result
*/
  Py_DECREF(__pyx_v_result);

  /* "pyarrow/includes/common.pxd":155
 *     cdef object result = <object> o
 *     cpython.Py_DECREF(result)
 *     return result             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "pyarrow/includes/common.pxd":151
 * 
 * 
 * cdef inline object PyObject_to_object(PyObject* o):             # <<<<<<<<<<<<<<
 *     # Cast to "object" increments reference count
 *     cdef object result = <object> o
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":58
 * 
 * 
 * def _pas():             # <<<<<<<<<<<<<<
 *     global __pas
 *     if __pas is None:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_1_pas(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute__pas, "_pas()");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_1_pas = {"_pas", (PyCFunction)__pyx_pw_7pyarrow_8_compute_1_pas, METH_NOARGS, __pyx_doc_7pyarrow_8_compute__pas};
static PyObject *__pyx_pw_7pyarrow_8_compute_1_pas(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_pas (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute__pas(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute__pas(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_v_pas = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  size_t __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_pas", 0);

  /* "pyarrow/_compute.pyx":60
 * def _pas():
 *     global __pas
 *     if __pas is None:             # <<<<<<<<<<<<<<
 *         try:
 *             import pyarrow.substrait as pas
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pas); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "pyarrow/_compute.pyx":61
 *     global __pas
 *     if __pas is None:
 *         try:             # <<<<<<<<<<<<<<
 *             import pyarrow.substrait as pas
 *             __pas = pas
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      /*try:*/ {

        /* "pyarrow/_compute.pyx":62
 *     if __pas is None:
 *         try:
 *             import pyarrow.substrait as pas             # <<<<<<<<<<<<<<
 *             __pas = pas
 *         except ImportError:
*/
        __pyx_t_6 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pyarrow_substrait, 0, 0, NULL, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 62, __pyx_L4_error)
        __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_substrait);
        Py_DECREF(__pyx_t_6);
        if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 62, __pyx_L4_error)
        __pyx_t_6 = __pyx_t_7;
        __pyx_t_1 = __pyx_t_6;
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_v_pas = __pyx_t_1;
        __pyx_t_1 = 0;

        /* "pyarrow/_compute.pyx":63
 *         try:
 *             import pyarrow.substrait as pas
 *             __pas = pas             # <<<<<<<<<<<<<<
 *         except ImportError:
 *             raise ImportError(_substrait_msg)
*/
        if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pas, __pyx_v_pas) < (0)) __PYX_ERR(0, 63, __pyx_L4_error)

        /* "pyarrow/_compute.pyx":61
 *     global __pas
 *     if __pas is None:
 *         try:             # <<<<<<<<<<<<<<
 *             import pyarrow.substrait as pas
 *             __pas = pas
*/
      }
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "pyarrow/_compute.pyx":64
 *             import pyarrow.substrait as pas
 *             __pas = pas
 *         except ImportError:             # <<<<<<<<<<<<<<
 *             raise ImportError(_substrait_msg)
 *     return __pas
*/
      __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError))));
      if (__pyx_t_8) {
        __Pyx_AddTraceback("pyarrow._compute._pas", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_9, &__pyx_t_10) < 0) __PYX_ERR(0, 64, __pyx_L6_except_error)
        __Pyx_XGOTREF(__pyx_t_1);
        __Pyx_XGOTREF(__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_10);

        /* "pyarrow/_compute.pyx":65
 *             __pas = pas
 *         except ImportError:
 *             raise ImportError(_substrait_msg)             # <<<<<<<<<<<<<<
 *     return __pas
 * 
*/
        __pyx_t_12 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_substrait_msg); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 65, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_14 = 1;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_13};
          __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 65, __pyx_L6_except_error)
          __Pyx_GOTREF(__pyx_t_11);
        }
        __Pyx_Raise(__pyx_t_11, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __PYX_ERR(0, 65, __pyx_L6_except_error)
      }
      goto __pyx_L6_except_error;

      /* "pyarrow/_compute.pyx":61
 *     global __pas
 *     if __pas is None:
 *         try:             # <<<<<<<<<<<<<<
 *             import pyarrow.substrait as pas
 *             __pas = pas
*/
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
      goto __pyx_L1_error;
      __pyx_L9_try_end:;
    }

    /* "pyarrow/_compute.pyx":60
 * def _pas():
 *     global __pas
 *     if __pas is None:             # <<<<<<<<<<<<<<
 *         try:
 *             import pyarrow.substrait as pas
*/
  }

  /* "pyarrow/_compute.pyx":66
 *         except ImportError:
 *             raise ImportError(_substrait_msg)
 *     return __pas             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_pas); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_r = __pyx_t_10;
  __pyx_t_10 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":58
 * 
 * 
 * def _pas():             # <<<<<<<<<<<<<<
 *     global __pas
 *     if __pas is None:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("pyarrow._compute._pas", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pas);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":69
 * 
 * 
 * def _forbid_instantiation(klass, subclasses_instead=True):             # <<<<<<<<<<<<<<
 *     msg = f'{klass.__name__} is an abstract class thus cannot be initialized.'
 *     if subclasses_instead:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_3_forbid_instantiation(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_2_forbid_instantiation, "_forbid_instantiation(klass, subclasses_instead=True)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_3_forbid_instantiation = {"_forbid_instantiation", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_3_forbid_instantiation, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_2_forbid_instantiation};
static PyObject *__pyx_pw_7pyarrow_8_compute_3_forbid_instantiation(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_klass = 0;
  PyObject *__pyx_v_subclasses_instead = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_forbid_instantiation (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_klass,&__pyx_mstate_global->__pyx_n_u_subclasses_instead,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 69, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 69, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 69, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_forbid_instantiation", 0) < (0)) __PYX_ERR(0, 69, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_forbid_instantiation", 0, 1, 2, i); __PYX_ERR(0, 69, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 69, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 69, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
    }
    __pyx_v_klass = values[0];
    __pyx_v_subclasses_instead = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_forbid_instantiation", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 69, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._forbid_instantiation", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_2_forbid_instantiation(__pyx_self, __pyx_v_klass, __pyx_v_subclasses_instead);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_2_forbid_instantiation(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_klass, PyObject *__pyx_v_subclasses_instead) {
  PyObject *__pyx_v_msg = NULL;
  PyObject *__pyx_v_subclasses = NULL;
  PyObject *__pyx_7genexpr__pyx_v_cls = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_forbid_instantiation", 0);

  /* "pyarrow/_compute.pyx":70
 * 
 * def _forbid_instantiation(klass, subclasses_instead=True):
 *     msg = f'{klass.__name__} is an abstract class thus cannot be initialized.'             # <<<<<<<<<<<<<<
 *     if subclasses_instead:
 *         subclasses = [cls.__name__ for cls in klass.__subclasses__]
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_klass, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_is_an_abstract_class_thus_canno); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_msg = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":71
 * def _forbid_instantiation(klass, subclasses_instead=True):
 *     msg = f'{klass.__name__} is an abstract class thus cannot be initialized.'
 *     if subclasses_instead:             # <<<<<<<<<<<<<<
 *         subclasses = [cls.__name__ for cls in klass.__subclasses__]
 *         msg += f' Use one of the subclasses instead: {", ".join(subclasses)}'
*/
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_subclasses_instead); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 71, __pyx_L1_error)
  if (__pyx_t_3) {

    /* "pyarrow/_compute.pyx":72
 *     msg = f'{klass.__name__} is an abstract class thus cannot be initialized.'
 *     if subclasses_instead:
 *         subclasses = [cls.__name__ for cls in klass.__subclasses__]             # <<<<<<<<<<<<<<
 *         msg += f' Use one of the subclasses instead: {", ".join(subclasses)}'
 *     raise TypeError(msg)
*/
    { /* enter inner scope */
      __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 72, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_klass, __pyx_mstate_global->__pyx_n_u_subclasses); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4);
        __pyx_t_5 = 0;
        __pyx_t_6 = NULL;
      } else {
        __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 72, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 72, __pyx_L6_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_6)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 72, __pyx_L6_error)
              #endif
              if (__pyx_t_5 >= __pyx_temp) break;
            }
            __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference);
            ++__pyx_t_5;
          } else {
            {
              Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
              #if !CYTHON_ASSUME_SAFE_SIZE
              if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 72, __pyx_L6_error)
              #endif
              if (__pyx_t_5 >= __pyx_temp) break;
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5));
            #else
            __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_5);
            #endif
            ++__pyx_t_5;
          }
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L6_error)
        } else {
          __pyx_t_2 = __pyx_t_6(__pyx_t_4);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 72, __pyx_L6_error)
              PyErr_Clear();
            }
            break;
          }
        }
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_cls, __pyx_t_2);
        __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_cls, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L6_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 72, __pyx_L6_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_7genexpr__pyx_v_cls); __pyx_7genexpr__pyx_v_cls = 0;
      goto __pyx_L10_exit_scope;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_7genexpr__pyx_v_cls); __pyx_7genexpr__pyx_v_cls = 0;
      goto __pyx_L1_error;
      __pyx_L10_exit_scope:;
    } /* exit inner scope */
    __pyx_v_subclasses = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;

    /* "pyarrow/_compute.pyx":73
 *     if subclasses_instead:
 *         subclasses = [cls.__name__ for cls in klass.__subclasses__]
 *         msg += f' Use one of the subclasses instead: {", ".join(subclasses)}'             # <<<<<<<<<<<<<<
 *     raise TypeError(msg)
 * 
*/
    __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__2, __pyx_v_subclasses); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Use_one_of_the_subclasses_inste, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_v_msg, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_msg, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "pyarrow/_compute.pyx":71
 * def _forbid_instantiation(klass, subclasses_instead=True):
 *     msg = f'{klass.__name__} is an abstract class thus cannot be initialized.'
 *     if subclasses_instead:             # <<<<<<<<<<<<<<
 *         subclasses = [cls.__name__ for cls in klass.__subclasses__]
 *         msg += f' Use one of the subclasses instead: {", ".join(subclasses)}'
*/
  }

  /* "pyarrow/_compute.pyx":74
 *         subclasses = [cls.__name__ for cls in klass.__subclasses__]
 *         msg += f' Use one of the subclasses instead: {", ".join(subclasses)}'
 *     raise TypeError(msg)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_4 = NULL;
  __pyx_t_7 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_msg};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(0, 74, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":69
 * 
 * 
 * def _forbid_instantiation(klass, subclasses_instead=True):             # <<<<<<<<<<<<<<
 *     msg = f'{klass.__name__} is an abstract class thus cannot be initialized.'
 *     if subclasses_instead:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute._forbid_instantiation", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XDECREF(__pyx_v_msg);
  __Pyx_XDECREF(__pyx_v_subclasses);
  __Pyx_XDECREF(__pyx_7genexpr__pyx_v_cls);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":77
 * 
 * 
 * cdef vector[CSortKey] unwrap_sort_keys(sort_keys, allow_str=True):             # <<<<<<<<<<<<<<
 *     cdef vector[CSortKey] c_sort_keys
 *     if allow_str and isinstance(sort_keys, str):
*/

static std::vector< arrow::compute::SortKey>  __pyx_f_7pyarrow_8_compute_unwrap_sort_keys(PyObject *__pyx_v_sort_keys, struct __pyx_opt_args_7pyarrow_8_compute_unwrap_sort_keys *__pyx_optional_args) {
  PyObject *__pyx_v_allow_str = ((PyObject *)Py_True);
  std::vector< arrow::compute::SortKey>  __pyx_v_c_sort_keys;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_order = NULL;
  std::vector< arrow::compute::SortKey>  __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
   arrow::FieldRef __pyx_t_3;
   arrow::compute::SortOrder __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *(*__pyx_t_12)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("unwrap_sort_keys", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_allow_str = __pyx_optional_args->allow_str;
    }
  }

  /* "pyarrow/_compute.pyx":79
 * cdef vector[CSortKey] unwrap_sort_keys(sort_keys, allow_str=True):
 *     cdef vector[CSortKey] c_sort_keys
 *     if allow_str and isinstance(sort_keys, str):             # <<<<<<<<<<<<<<
 *         c_sort_keys.push_back(
 *             CSortKey(_ensure_field_ref(""), unwrap_sort_order(sort_keys))
*/
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_allow_str); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 79, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = PyUnicode_Check(__pyx_v_sort_keys); 
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":81
 *     if allow_str and isinstance(sort_keys, str):
 *         c_sort_keys.push_back(
 *             CSortKey(_ensure_field_ref(""), unwrap_sort_order(sort_keys))             # <<<<<<<<<<<<<<
 *         )
 *     else:
*/
    __pyx_t_3 = __pyx_f_7pyarrow_8_compute__ensure_field_ref(__pyx_mstate_global->__pyx_kp_u__3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L1_error)
    __pyx_t_4 = __pyx_f_7pyarrow_8_compute_unwrap_sort_order(__pyx_v_sort_keys); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":80
 *     cdef vector[CSortKey] c_sort_keys
 *     if allow_str and isinstance(sort_keys, str):
 *         c_sort_keys.push_back(             # <<<<<<<<<<<<<<
 *             CSortKey(_ensure_field_ref(""), unwrap_sort_order(sort_keys))
 *         )
*/
    try {
      __pyx_v_c_sort_keys.push_back( arrow::compute::SortKey(__pyx_t_3, __pyx_t_4));
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 80, __pyx_L1_error)
    }

    /* "pyarrow/_compute.pyx":79
 * cdef vector[CSortKey] unwrap_sort_keys(sort_keys, allow_str=True):
 *     cdef vector[CSortKey] c_sort_keys
 *     if allow_str and isinstance(sort_keys, str):             # <<<<<<<<<<<<<<
 *         c_sort_keys.push_back(
 *             CSortKey(_ensure_field_ref(""), unwrap_sort_order(sort_keys))
*/
    goto __pyx_L3;
  }

  /* "pyarrow/_compute.pyx":84
 *         )
 *     else:
 *         for name, order in sort_keys:             # <<<<<<<<<<<<<<
 *             c_sort_keys.push_back(
 *                 CSortKey(_ensure_field_ref(name), unwrap_sort_order(order))
*/
  /*else*/ {
    if (likely(PyList_CheckExact(__pyx_v_sort_keys)) || PyTuple_CheckExact(__pyx_v_sort_keys)) {
      __pyx_t_5 = __pyx_v_sort_keys; __Pyx_INCREF(__pyx_t_5);
      __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_sort_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 84, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 84, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 84, __pyx_L1_error)
            #endif
            if (__pyx_t_6 >= __pyx_temp) break;
          }
          __pyx_t_8 = __Pyx_PyList_GetItemRefFast(__pyx_t_5, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference);
          ++__pyx_t_6;
        } else {
          {
            Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
            #if !CYTHON_ASSUME_SAFE_SIZE
            if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 84, __pyx_L1_error)
            #endif
            if (__pyx_t_6 >= __pyx_temp) break;
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6));
          #else
          __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6);
          #endif
          ++__pyx_t_6;
        }
        if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 84, __pyx_L1_error)
      } else {
        __pyx_t_8 = __pyx_t_7(__pyx_t_5);
        if (unlikely(!__pyx_t_8)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 84, __pyx_L1_error)
            PyErr_Clear();
          }
          break;
        }
      }
      __Pyx_GOTREF(__pyx_t_8);
      if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) {
        PyObject* sequence = __pyx_t_8;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 84, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0);
          __Pyx_INCREF(__pyx_t_9);
          __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1);
          __Pyx_INCREF(__pyx_t_10);
        } else {
          __pyx_t_9 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 84, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_9);
          __pyx_t_10 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
          if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 84, __pyx_L1_error)
          __Pyx_XGOTREF(__pyx_t_10);
        }
        #else
        __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 84, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 84, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        #endif
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_11 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 84, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_12 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_11);
        index = 0; __pyx_t_9 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_9)) goto __pyx_L8_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_9);
        index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L8_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_10);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < (0)) __PYX_ERR(0, 84, __pyx_L1_error)
        __pyx_t_12 = NULL;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        goto __pyx_L9_unpacking_done;
        __pyx_L8_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 84, __pyx_L1_error)
        __pyx_L9_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_9);
      __pyx_t_9 = 0;
      __Pyx_XDECREF_SET(__pyx_v_order, __pyx_t_10);
      __pyx_t_10 = 0;

      /* "pyarrow/_compute.pyx":86
 *         for name, order in sort_keys:
 *             c_sort_keys.push_back(
 *                 CSortKey(_ensure_field_ref(name), unwrap_sort_order(order))             # <<<<<<<<<<<<<<
 *             )
 *     return c_sort_keys
*/
      __pyx_t_3 = __pyx_f_7pyarrow_8_compute__ensure_field_ref(__pyx_v_name); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 86, __pyx_L1_error)
      __pyx_t_4 = __pyx_f_7pyarrow_8_compute_unwrap_sort_order(__pyx_v_order); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 86, __pyx_L1_error)

      /* "pyarrow/_compute.pyx":85
 *     else:
 *         for name, order in sort_keys:
 *             c_sort_keys.push_back(             # <<<<<<<<<<<<<<
 *                 CSortKey(_ensure_field_ref(name), unwrap_sort_order(order))
 *             )
*/
      try {
        __pyx_v_c_sort_keys.push_back( arrow::compute::SortKey(__pyx_t_3, __pyx_t_4));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 85, __pyx_L1_error)
      }

      /* "pyarrow/_compute.pyx":84
 *         )
 *     else:
 *         for name, order in sort_keys:             # <<<<<<<<<<<<<<
 *             c_sort_keys.push_back(
 *                 CSortKey(_ensure_field_ref(name), unwrap_sort_order(order))
*/
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_L3:;

  /* "pyarrow/_compute.pyx":88
 *                 CSortKey(_ensure_field_ref(name), unwrap_sort_order(order))
 *             )
 *     return c_sort_keys             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_c_sort_keys;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":77
 * 
 * 
 * cdef vector[CSortKey] unwrap_sort_keys(sort_keys, allow_str=True):             # <<<<<<<<<<<<<<
 *     cdef vector[CSortKey] c_sort_keys
 *     if allow_str and isinstance(sort_keys, str):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("pyarrow._compute.unwrap_sort_keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_order);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":91
 * 
 * 
 * cdef wrap_scalar_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ scalar Function in a ScalarFunction object.
*/

static PyObject *__pyx_f_7pyarrow_8_compute_wrap_scalar_function(std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {
  struct __pyx_obj_7pyarrow_8_compute_ScalarFunction *__pyx_v_func = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap_scalar_function", 0);

  /* "pyarrow/_compute.pyx":95
 *     Wrap a C++ scalar Function in a ScalarFunction object.
 *     """
 *     cdef ScalarFunction func = ScalarFunction.__new__(ScalarFunction)             # <<<<<<<<<<<<<<
 *     func.init(sp_func)
 *     return func
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_ScalarFunction(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_ScalarFunction), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 95, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_func = ((struct __pyx_obj_7pyarrow_8_compute_ScalarFunction *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":96
 *     """
 *     cdef ScalarFunction func = ScalarFunction.__new__(ScalarFunction)
 *     func.init(sp_func)             # <<<<<<<<<<<<<<
 *     return func
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarFunction *)__pyx_v_func->__pyx_base.__pyx_vtab)->__pyx_base.init(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_func), __pyx_v_sp_func); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 96, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":97
 *     cdef ScalarFunction func = ScalarFunction.__new__(ScalarFunction)
 *     func.init(sp_func)
 *     return func             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_func);
  __pyx_r = ((PyObject *)__pyx_v_func);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":91
 * 
 * 
 * cdef wrap_scalar_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ scalar Function in a ScalarFunction object.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.wrap_scalar_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_func);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":100
 * 
 * 
 * cdef wrap_vector_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ vector Function in a VectorFunction object.
*/

static PyObject *__pyx_f_7pyarrow_8_compute_wrap_vector_function(std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {
  struct __pyx_obj_7pyarrow_8_compute_VectorFunction *__pyx_v_func = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap_vector_function", 0);

  /* "pyarrow/_compute.pyx":104
 *     Wrap a C++ vector Function in a VectorFunction object.
 *     """
 *     cdef VectorFunction func = VectorFunction.__new__(VectorFunction)             # <<<<<<<<<<<<<<
 *     func.init(sp_func)
 *     return func
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_VectorFunction(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_VectorFunction), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 104, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_func = ((struct __pyx_obj_7pyarrow_8_compute_VectorFunction *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":105
 *     """
 *     cdef VectorFunction func = VectorFunction.__new__(VectorFunction)
 *     func.init(sp_func)             # <<<<<<<<<<<<<<
 *     return func
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_VectorFunction *)__pyx_v_func->__pyx_base.__pyx_vtab)->__pyx_base.init(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_func), __pyx_v_sp_func); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 105, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":106
 *     cdef VectorFunction func = VectorFunction.__new__(VectorFunction)
 *     func.init(sp_func)
 *     return func             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_func);
  __pyx_r = ((PyObject *)__pyx_v_func);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":100
 * 
 * 
 * cdef wrap_vector_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ vector Function in a VectorFunction object.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.wrap_vector_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_func);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":109
 * 
 * 
 * cdef wrap_scalar_aggregate_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ aggregate Function in a ScalarAggregateFunction object.
*/

static PyObject *__pyx_f_7pyarrow_8_compute_wrap_scalar_aggregate_function(std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {
  struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction *__pyx_v_func = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap_scalar_aggregate_function", 0);

  /* "pyarrow/_compute.pyx":114
 *     """
 *     cdef ScalarAggregateFunction func = \
 *         ScalarAggregateFunction.__new__(ScalarAggregateFunction)             # <<<<<<<<<<<<<<
 *     func.init(sp_func)
 *     return func
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_ScalarAggregateFunction(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_func = ((struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":115
 *     cdef ScalarAggregateFunction func = \
 *         ScalarAggregateFunction.__new__(ScalarAggregateFunction)
 *     func.init(sp_func)             # <<<<<<<<<<<<<<
 *     return func
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarAggregateFunction *)__pyx_v_func->__pyx_base.__pyx_vtab)->__pyx_base.init(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_func), __pyx_v_sp_func); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 115, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":116
 *         ScalarAggregateFunction.__new__(ScalarAggregateFunction)
 *     func.init(sp_func)
 *     return func             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_func);
  __pyx_r = ((PyObject *)__pyx_v_func);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":109
 * 
 * 
 * cdef wrap_scalar_aggregate_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ aggregate Function in a ScalarAggregateFunction object.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.wrap_scalar_aggregate_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_func);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":119
 * 
 * 
 * cdef wrap_hash_aggregate_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ aggregate Function in a HashAggregateFunction object.
*/

static PyObject *__pyx_f_7pyarrow_8_compute_wrap_hash_aggregate_function(std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {
  struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction *__pyx_v_func = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap_hash_aggregate_function", 0);

  /* "pyarrow/_compute.pyx":124
 *     """
 *     cdef HashAggregateFunction func = \
 *         HashAggregateFunction.__new__(HashAggregateFunction)             # <<<<<<<<<<<<<<
 *     func.init(sp_func)
 *     return func
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_HashAggregateFunction(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_func = ((struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":125
 *     cdef HashAggregateFunction func = \
 *         HashAggregateFunction.__new__(HashAggregateFunction)
 *     func.init(sp_func)             # <<<<<<<<<<<<<<
 *     return func
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_HashAggregateFunction *)__pyx_v_func->__pyx_base.__pyx_vtab)->__pyx_base.init(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_func), __pyx_v_sp_func); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 125, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":126
 *         HashAggregateFunction.__new__(HashAggregateFunction)
 *     func.init(sp_func)
 *     return func             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_func);
  __pyx_r = ((PyObject *)__pyx_v_func);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":119
 * 
 * 
 * cdef wrap_hash_aggregate_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ aggregate Function in a HashAggregateFunction object.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.wrap_hash_aggregate_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_func);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":129
 * 
 * 
 * cdef wrap_meta_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ meta Function in a MetaFunction object.
*/

static PyObject *__pyx_f_7pyarrow_8_compute_wrap_meta_function(std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {
  struct __pyx_obj_7pyarrow_8_compute_MetaFunction *__pyx_v_func = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap_meta_function", 0);

  /* "pyarrow/_compute.pyx":133
 *     Wrap a C++ meta Function in a MetaFunction object.
 *     """
 *     cdef MetaFunction func = MetaFunction.__new__(MetaFunction)             # <<<<<<<<<<<<<<
 *     func.init(sp_func)
 *     return func
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_MetaFunction(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_MetaFunction), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_func = ((struct __pyx_obj_7pyarrow_8_compute_MetaFunction *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":134
 *     """
 *     cdef MetaFunction func = MetaFunction.__new__(MetaFunction)
 *     func.init(sp_func)             # <<<<<<<<<<<<<<
 *     return func
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_MetaFunction *)__pyx_v_func->__pyx_base.__pyx_vtab)->__pyx_base.init(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_func), __pyx_v_sp_func); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 134, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":135
 *     cdef MetaFunction func = MetaFunction.__new__(MetaFunction)
 *     func.init(sp_func)
 *     return func             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_func);
  __pyx_r = ((PyObject *)__pyx_v_func);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":129
 * 
 * 
 * cdef wrap_meta_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ meta Function in a MetaFunction object.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.wrap_meta_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_func);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":138
 * 
 * 
 * cdef wrap_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ Function in a Function object.
*/

static PyObject *__pyx_f_7pyarrow_8_compute_wrap_function(std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {
  enum  arrow::compute::Function::Kind __pyx_v_c_kind;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap_function", 0);

  /* "pyarrow/_compute.pyx":144
 *     This dispatches to specialized wrappers depending on the function kind.
 *     """
 *     if sp_func.get() == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError("Function was NULL")
 * 
*/
  __pyx_t_1 = (__pyx_v_sp_func.get() == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":145
 *     """
 *     if sp_func.get() == NULL:
 *         raise ValueError("Function was NULL")             # <<<<<<<<<<<<<<
 * 
 *     cdef FunctionKind c_kind = sp_func.get().kind()
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Function_was_NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 145, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":144
 *     This dispatches to specialized wrappers depending on the function kind.
 *     """
 *     if sp_func.get() == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError("Function was NULL")
 * 
*/
  }

  /* "pyarrow/_compute.pyx":147
 *         raise ValueError("Function was NULL")
 * 
 *     cdef FunctionKind c_kind = sp_func.get().kind()             # <<<<<<<<<<<<<<
 *     if c_kind == FunctionKind_SCALAR:
 *         return wrap_scalar_function(sp_func)
*/
  __pyx_v_c_kind = __pyx_v_sp_func.get()->kind();

  /* "pyarrow/_compute.pyx":148
 * 
 *     cdef FunctionKind c_kind = sp_func.get().kind()
 *     if c_kind == FunctionKind_SCALAR:             # <<<<<<<<<<<<<<
 *         return wrap_scalar_function(sp_func)
 *     elif c_kind == FunctionKind_VECTOR:
*/
  switch (__pyx_v_c_kind) {
    case  arrow::compute::Function::SCALAR:

    /* "pyarrow/_compute.pyx":149
 *     cdef FunctionKind c_kind = sp_func.get().kind()
 *     if c_kind == FunctionKind_SCALAR:
 *         return wrap_scalar_function(sp_func)             # <<<<<<<<<<<<<<
 *     elif c_kind == FunctionKind_VECTOR:
 *         return wrap_vector_function(sp_func)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7pyarrow_8_compute_wrap_scalar_function(__pyx_v_sp_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":148
 * 
 *     cdef FunctionKind c_kind = sp_func.get().kind()
 *     if c_kind == FunctionKind_SCALAR:             # <<<<<<<<<<<<<<
 *         return wrap_scalar_function(sp_func)
 *     elif c_kind == FunctionKind_VECTOR:
*/
    break;
    case  arrow::compute::Function::VECTOR:

    /* "pyarrow/_compute.pyx":151
 *         return wrap_scalar_function(sp_func)
 *     elif c_kind == FunctionKind_VECTOR:
 *         return wrap_vector_function(sp_func)             # <<<<<<<<<<<<<<
 *     elif c_kind == FunctionKind_SCALAR_AGGREGATE:
 *         return wrap_scalar_aggregate_function(sp_func)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7pyarrow_8_compute_wrap_vector_function(__pyx_v_sp_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":150
 *     if c_kind == FunctionKind_SCALAR:
 *         return wrap_scalar_function(sp_func)
 *     elif c_kind == FunctionKind_VECTOR:             # <<<<<<<<<<<<<<
 *         return wrap_vector_function(sp_func)
 *     elif c_kind == FunctionKind_SCALAR_AGGREGATE:
*/
    break;
    case  arrow::compute::Function::SCALAR_AGGREGATE:

    /* "pyarrow/_compute.pyx":153
 *         return wrap_vector_function(sp_func)
 *     elif c_kind == FunctionKind_SCALAR_AGGREGATE:
 *         return wrap_scalar_aggregate_function(sp_func)             # <<<<<<<<<<<<<<
 *     elif c_kind == FunctionKind_HASH_AGGREGATE:
 *         return wrap_hash_aggregate_function(sp_func)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7pyarrow_8_compute_wrap_scalar_aggregate_function(__pyx_v_sp_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":152
 *     elif c_kind == FunctionKind_VECTOR:
 *         return wrap_vector_function(sp_func)
 *     elif c_kind == FunctionKind_SCALAR_AGGREGATE:             # <<<<<<<<<<<<<<
 *         return wrap_scalar_aggregate_function(sp_func)
 *     elif c_kind == FunctionKind_HASH_AGGREGATE:
*/
    break;
    case  arrow::compute::Function::HASH_AGGREGATE:

    /* "pyarrow/_compute.pyx":155
 *         return wrap_scalar_aggregate_function(sp_func)
 *     elif c_kind == FunctionKind_HASH_AGGREGATE:
 *         return wrap_hash_aggregate_function(sp_func)             # <<<<<<<<<<<<<<
 *     elif c_kind == FunctionKind_META:
 *         return wrap_meta_function(sp_func)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7pyarrow_8_compute_wrap_hash_aggregate_function(__pyx_v_sp_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":154
 *     elif c_kind == FunctionKind_SCALAR_AGGREGATE:
 *         return wrap_scalar_aggregate_function(sp_func)
 *     elif c_kind == FunctionKind_HASH_AGGREGATE:             # <<<<<<<<<<<<<<
 *         return wrap_hash_aggregate_function(sp_func)
 *     elif c_kind == FunctionKind_META:
*/
    break;
    case  arrow::compute::Function::META:

    /* "pyarrow/_compute.pyx":157
 *         return wrap_hash_aggregate_function(sp_func)
 *     elif c_kind == FunctionKind_META:
 *         return wrap_meta_function(sp_func)             # <<<<<<<<<<<<<<
 *     else:
 *         raise NotImplementedError("Unknown Function::Kind")
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __pyx_f_7pyarrow_8_compute_wrap_meta_function(__pyx_v_sp_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":156
 *     elif c_kind == FunctionKind_HASH_AGGREGATE:
 *         return wrap_hash_aggregate_function(sp_func)
 *     elif c_kind == FunctionKind_META:             # <<<<<<<<<<<<<<
 *         return wrap_meta_function(sp_func)
 *     else:
*/
    break;
    default:

    /* "pyarrow/_compute.pyx":159
 *         return wrap_meta_function(sp_func)
 *     else:
 *         raise NotImplementedError("Unknown Function::Kind")             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Unknown_Function_Kind};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_NotImplementedError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 159, __pyx_L1_error)
    break;
  }

  /* "pyarrow/_compute.pyx":138
 * 
 * 
 * cdef wrap_function(const shared_ptr[CFunction]& sp_func):             # <<<<<<<<<<<<<<
 *     """
 *     Wrap a C++ Function in a Function object.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.wrap_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":162
 * 
 * 
 * cdef wrap_scalar_kernel(const CScalarKernel* c_kernel):             # <<<<<<<<<<<<<<
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")
*/

static PyObject *__pyx_f_7pyarrow_8_compute_wrap_scalar_kernel( arrow::compute::ScalarKernel const *__pyx_v_c_kernel) {
  struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *__pyx_v_kernel = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap_scalar_kernel", 0);

  /* "pyarrow/_compute.pyx":163
 * 
 * cdef wrap_scalar_kernel(const CScalarKernel* c_kernel):
 *     if c_kernel == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError("Kernel was NULL")
 *     cdef ScalarKernel kernel = ScalarKernel.__new__(ScalarKernel)
*/
  __pyx_t_1 = (__pyx_v_c_kernel == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":164
 * cdef wrap_scalar_kernel(const CScalarKernel* c_kernel):
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")             # <<<<<<<<<<<<<<
 *     cdef ScalarKernel kernel = ScalarKernel.__new__(ScalarKernel)
 *     kernel.init(c_kernel)
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Kernel_was_NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 164, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":163
 * 
 * cdef wrap_scalar_kernel(const CScalarKernel* c_kernel):
 *     if c_kernel == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError("Kernel was NULL")
 *     cdef ScalarKernel kernel = ScalarKernel.__new__(ScalarKernel)
*/
  }

  /* "pyarrow/_compute.pyx":165
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")
 *     cdef ScalarKernel kernel = ScalarKernel.__new__(ScalarKernel)             # <<<<<<<<<<<<<<
 *     kernel.init(c_kernel)
 *     return kernel
*/
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_ScalarKernel(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_ScalarKernel), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __pyx_v_kernel = ((struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":166
 *         raise ValueError("Kernel was NULL")
 *     cdef ScalarKernel kernel = ScalarKernel.__new__(ScalarKernel)
 *     kernel.init(c_kernel)             # <<<<<<<<<<<<<<
 *     return kernel
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarKernel *)__pyx_v_kernel->__pyx_vtab)->init(__pyx_v_kernel, __pyx_v_c_kernel); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":167
 *     cdef ScalarKernel kernel = ScalarKernel.__new__(ScalarKernel)
 *     kernel.init(c_kernel)
 *     return kernel             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_kernel);
  __pyx_r = ((PyObject *)__pyx_v_kernel);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":162
 * 
 * 
 * cdef wrap_scalar_kernel(const CScalarKernel* c_kernel):             # <<<<<<<<<<<<<<
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.wrap_scalar_kernel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_kernel);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":170
 * 
 * 
 * cdef wrap_vector_kernel(const CVectorKernel* c_kernel):             # <<<<<<<<<<<<<<
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")
*/

static PyObject *__pyx_f_7pyarrow_8_compute_wrap_vector_kernel( arrow::compute::VectorKernel const *__pyx_v_c_kernel) {
  struct __pyx_obj_7pyarrow_8_compute_VectorKernel *__pyx_v_kernel = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap_vector_kernel", 0);

  /* "pyarrow/_compute.pyx":171
 * 
 * cdef wrap_vector_kernel(const CVectorKernel* c_kernel):
 *     if c_kernel == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError("Kernel was NULL")
 *     cdef VectorKernel kernel = VectorKernel.__new__(VectorKernel)
*/
  __pyx_t_1 = (__pyx_v_c_kernel == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":172
 * cdef wrap_vector_kernel(const CVectorKernel* c_kernel):
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")             # <<<<<<<<<<<<<<
 *     cdef VectorKernel kernel = VectorKernel.__new__(VectorKernel)
 *     kernel.init(c_kernel)
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Kernel_was_NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 172, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 172, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":171
 * 
 * cdef wrap_vector_kernel(const CVectorKernel* c_kernel):
 *     if c_kernel == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError("Kernel was NULL")
 *     cdef VectorKernel kernel = VectorKernel.__new__(VectorKernel)
*/
  }

  /* "pyarrow/_compute.pyx":173
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")
 *     cdef VectorKernel kernel = VectorKernel.__new__(VectorKernel)             # <<<<<<<<<<<<<<
 *     kernel.init(c_kernel)
 *     return kernel
*/
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_VectorKernel(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_VectorKernel), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 173, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __pyx_v_kernel = ((struct __pyx_obj_7pyarrow_8_compute_VectorKernel *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":174
 *         raise ValueError("Kernel was NULL")
 *     cdef VectorKernel kernel = VectorKernel.__new__(VectorKernel)
 *     kernel.init(c_kernel)             # <<<<<<<<<<<<<<
 *     return kernel
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_VectorKernel *)__pyx_v_kernel->__pyx_vtab)->init(__pyx_v_kernel, __pyx_v_c_kernel); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":175
 *     cdef VectorKernel kernel = VectorKernel.__new__(VectorKernel)
 *     kernel.init(c_kernel)
 *     return kernel             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_kernel);
  __pyx_r = ((PyObject *)__pyx_v_kernel);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":170
 * 
 * 
 * cdef wrap_vector_kernel(const CVectorKernel* c_kernel):             # <<<<<<<<<<<<<<
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.wrap_vector_kernel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_kernel);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":178
 * 
 * 
 * cdef wrap_scalar_aggregate_kernel(const CScalarAggregateKernel* c_kernel):             # <<<<<<<<<<<<<<
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")
*/

static PyObject *__pyx_f_7pyarrow_8_compute_wrap_scalar_aggregate_kernel( arrow::compute::ScalarAggregateKernel const *__pyx_v_c_kernel) {
  struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *__pyx_v_kernel = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap_scalar_aggregate_kernel", 0);

  /* "pyarrow/_compute.pyx":179
 * 
 * cdef wrap_scalar_aggregate_kernel(const CScalarAggregateKernel* c_kernel):
 *     if c_kernel == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError("Kernel was NULL")
 *     cdef ScalarAggregateKernel kernel = \
*/
  __pyx_t_1 = (__pyx_v_c_kernel == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":180
 * cdef wrap_scalar_aggregate_kernel(const CScalarAggregateKernel* c_kernel):
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")             # <<<<<<<<<<<<<<
 *     cdef ScalarAggregateKernel kernel = \
 *         ScalarAggregateKernel.__new__(ScalarAggregateKernel)
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Kernel_was_NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 180, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 180, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":179
 * 
 * cdef wrap_scalar_aggregate_kernel(const CScalarAggregateKernel* c_kernel):
 *     if c_kernel == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError("Kernel was NULL")
 *     cdef ScalarAggregateKernel kernel = \
*/
  }

  /* "pyarrow/_compute.pyx":182
 *         raise ValueError("Kernel was NULL")
 *     cdef ScalarAggregateKernel kernel = \
 *         ScalarAggregateKernel.__new__(ScalarAggregateKernel)             # <<<<<<<<<<<<<<
 *     kernel.init(c_kernel)
 *     return kernel
*/
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_ScalarAggregateKernel(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __pyx_v_kernel = ((struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":183
 *     cdef ScalarAggregateKernel kernel = \
 *         ScalarAggregateKernel.__new__(ScalarAggregateKernel)
 *     kernel.init(c_kernel)             # <<<<<<<<<<<<<<
 *     return kernel
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarAggregateKernel *)__pyx_v_kernel->__pyx_vtab)->init(__pyx_v_kernel, __pyx_v_c_kernel); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 183, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":184
 *         ScalarAggregateKernel.__new__(ScalarAggregateKernel)
 *     kernel.init(c_kernel)
 *     return kernel             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_kernel);
  __pyx_r = ((PyObject *)__pyx_v_kernel);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":178
 * 
 * 
 * cdef wrap_scalar_aggregate_kernel(const CScalarAggregateKernel* c_kernel):             # <<<<<<<<<<<<<<
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.wrap_scalar_aggregate_kernel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_kernel);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":187
 * 
 * 
 * cdef wrap_hash_aggregate_kernel(const CHashAggregateKernel* c_kernel):             # <<<<<<<<<<<<<<
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")
*/

static PyObject *__pyx_f_7pyarrow_8_compute_wrap_hash_aggregate_kernel( arrow::compute::HashAggregateKernel const *__pyx_v_c_kernel) {
  struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *__pyx_v_kernel = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap_hash_aggregate_kernel", 0);

  /* "pyarrow/_compute.pyx":188
 * 
 * cdef wrap_hash_aggregate_kernel(const CHashAggregateKernel* c_kernel):
 *     if c_kernel == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError("Kernel was NULL")
 *     cdef HashAggregateKernel kernel = \
*/
  __pyx_t_1 = (__pyx_v_c_kernel == NULL);
  if (unlikely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":189
 * cdef wrap_hash_aggregate_kernel(const CHashAggregateKernel* c_kernel):
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")             # <<<<<<<<<<<<<<
 *     cdef HashAggregateKernel kernel = \
 *         HashAggregateKernel.__new__(HashAggregateKernel)
*/
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Kernel_was_NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 189, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 189, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":188
 * 
 * cdef wrap_hash_aggregate_kernel(const CHashAggregateKernel* c_kernel):
 *     if c_kernel == NULL:             # <<<<<<<<<<<<<<
 *         raise ValueError("Kernel was NULL")
 *     cdef HashAggregateKernel kernel = \
*/
  }

  /* "pyarrow/_compute.pyx":191
 *         raise ValueError("Kernel was NULL")
 *     cdef HashAggregateKernel kernel = \
 *         HashAggregateKernel.__new__(HashAggregateKernel)             # <<<<<<<<<<<<<<
 *     kernel.init(c_kernel)
 *     return kernel
*/
  __pyx_t_2 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_HashAggregateKernel(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_2);
  __pyx_v_kernel = ((struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":192
 *     cdef HashAggregateKernel kernel = \
 *         HashAggregateKernel.__new__(HashAggregateKernel)
 *     kernel.init(c_kernel)             # <<<<<<<<<<<<<<
 *     return kernel
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_HashAggregateKernel *)__pyx_v_kernel->__pyx_vtab)->init(__pyx_v_kernel, __pyx_v_c_kernel); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 192, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":193
 *         HashAggregateKernel.__new__(HashAggregateKernel)
 *     kernel.init(c_kernel)
 *     return kernel             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_kernel);
  __pyx_r = ((PyObject *)__pyx_v_kernel);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":187
 * 
 * 
 * cdef wrap_hash_aggregate_kernel(const CHashAggregateKernel* c_kernel):             # <<<<<<<<<<<<<<
 *     if c_kernel == NULL:
 *         raise ValueError("Kernel was NULL")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.wrap_hash_aggregate_kernel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_kernel);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":203
 *     """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")
 * 
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_6Kernel_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_6Kernel_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__init__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_6Kernel___init__(((struct __pyx_obj_7pyarrow_8_compute_Kernel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_6Kernel___init__(struct __pyx_obj_7pyarrow_8_compute_Kernel *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[3];
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":204
 * 
 *     def __init__(self):
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_Do_not_call;
  __pyx_t_5[1] = __pyx_t_3;
  __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u_s_constructor_directly;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, 12 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 23, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(0, 204, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":203
 *     """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.Kernel.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_6Kernel_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_6Kernel_2__reduce_cython__, "Kernel.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_6Kernel_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_6Kernel_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_6Kernel_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_6Kernel_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_6Kernel_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute_Kernel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_6Kernel_2__reduce_cython__(struct __pyx_obj_7pyarrow_8_compute_Kernel *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
  __pyx_v_state = __pyx_mstate_global->__pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None and _dict:
 *         state += (_dict,)
*/
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__dict); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 7, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
*/
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict) != (0)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None and _dict:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
*/
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None and _dict:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
*/
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Kernel, (type(self), 0xe3b0c44, None), state
*/
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Kernel, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Kernel, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Kernel, (type(self), 0xe3b0c44, state)
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Kernel); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None) != (0)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4) != (0)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1) != (0)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state) != (0)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Kernel, (type(self), 0xe3b0c44, None), state
 *     else:
*/
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Kernel, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_Kernel, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Kernel__set_state(self, __pyx_state)
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Kernel); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))) != (0)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_238750788) != (0)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state) != (0)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5) != (0)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pyarrow._compute.Kernel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Kernel, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Kernel__set_state(self, __pyx_state)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_6Kernel_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_6Kernel_4__setstate_cython__, "Kernel.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_6Kernel_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_6Kernel_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_6Kernel_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_6Kernel_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 16, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 16, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 16, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 16, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 16, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Kernel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_6Kernel_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute_Kernel *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_6Kernel_4__setstate_cython__(struct __pyx_obj_7pyarrow_8_compute_Kernel *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Kernel, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Kernel__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __pyx_v___pyx_state;
  __Pyx_INCREF(__pyx_t_1);
  if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(1, 17, __pyx_L1_error)
  if (unlikely(__pyx_t_1 == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
    __PYX_ERR(1, 17, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_f_7pyarrow_8_compute___pyx_unpickle_Kernel__set_state(__pyx_v_self, ((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Kernel, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Kernel__set_state(self, __pyx_state)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.Kernel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":210
 *     cdef const CScalarKernel* kernel
 * 
 *     cdef void init(self, const CScalarKernel* kernel) except *:             # <<<<<<<<<<<<<<
 *         self.kernel = kernel
 * 
*/

static void __pyx_f_7pyarrow_8_compute_12ScalarKernel_init(struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *__pyx_v_self,  arrow::compute::ScalarKernel const *__pyx_v_kernel) {

  /* "pyarrow/_compute.pyx":211
 * 
 *     cdef void init(self, const CScalarKernel* kernel) except *:
 *         self.kernel = kernel             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __pyx_v_self->kernel = __pyx_v_kernel;

  /* "pyarrow/_compute.pyx":210
 *     cdef const CScalarKernel* kernel
 * 
 *     cdef void init(self, const CScalarKernel* kernel) except *:             # <<<<<<<<<<<<<<
 *         self.kernel = kernel
 * 
*/

  /* function exit code */
}

/* "pyarrow/_compute.pyx":213
 *         self.kernel = kernel
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"ScalarKernel<{frombytes(self.kernel.signature.get().ToString())}>"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12ScalarKernel_1__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_12ScalarKernel_1__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12ScalarKernel___repr__(((struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12ScalarKernel___repr__(struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "pyarrow/_compute.pyx":214
 * 
 *     def __repr__(self):
 *         return f"ScalarKernel<{frombytes(self.kernel.signature.get().ToString())}>"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_self->kernel->signature.get()->ToString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_t_3, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_ScalarKernel;
  __pyx_t_4[1] = __pyx_t_2;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u__4;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":213
 *         self.kernel = kernel
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"ScalarKernel<{frombytes(self.kernel.signature.get().ToString())}>"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.ScalarKernel.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12ScalarKernel_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12ScalarKernel_2__reduce_cython__, "ScalarKernel.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12ScalarKernel_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12ScalarKernel_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12ScalarKernel_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12ScalarKernel_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12ScalarKernel_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12ScalarKernel_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_kernel_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.ScalarKernel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12ScalarKernel_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12ScalarKernel_4__setstate_cython__, "ScalarKernel.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12ScalarKernel_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12ScalarKernel_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12ScalarKernel_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12ScalarKernel_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ScalarKernel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12ScalarKernel_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12ScalarKernel_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_kernel_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.ScalarKernel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":220
 *     cdef const CVectorKernel* kernel
 * 
 *     cdef void init(self, const CVectorKernel* kernel) except *:             # <<<<<<<<<<<<<<
 *         self.kernel = kernel
 * 
*/

static void __pyx_f_7pyarrow_8_compute_12VectorKernel_init(struct __pyx_obj_7pyarrow_8_compute_VectorKernel *__pyx_v_self,  arrow::compute::VectorKernel const *__pyx_v_kernel) {

  /* "pyarrow/_compute.pyx":221
 * 
 *     cdef void init(self, const CVectorKernel* kernel) except *:
 *         self.kernel = kernel             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __pyx_v_self->kernel = __pyx_v_kernel;

  /* "pyarrow/_compute.pyx":220
 *     cdef const CVectorKernel* kernel
 * 
 *     cdef void init(self, const CVectorKernel* kernel) except *:             # <<<<<<<<<<<<<<
 *         self.kernel = kernel
 * 
*/

  /* function exit code */
}

/* "pyarrow/_compute.pyx":223
 *         self.kernel = kernel
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"VectorKernel<{frombytes(self.kernel.signature.get().ToString())}>"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12VectorKernel_1__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_12VectorKernel_1__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12VectorKernel___repr__(((struct __pyx_obj_7pyarrow_8_compute_VectorKernel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12VectorKernel___repr__(struct __pyx_obj_7pyarrow_8_compute_VectorKernel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "pyarrow/_compute.pyx":224
 * 
 *     def __repr__(self):
 *         return f"VectorKernel<{frombytes(self.kernel.signature.get().ToString())}>"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_self->kernel->signature.get()->ToString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_t_3, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_VectorKernel;
  __pyx_t_4[1] = __pyx_t_2;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u__4;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":223
 *         self.kernel = kernel
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"VectorKernel<{frombytes(self.kernel.signature.get().ToString())}>"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.VectorKernel.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12VectorKernel_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12VectorKernel_2__reduce_cython__, "VectorKernel.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12VectorKernel_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12VectorKernel_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12VectorKernel_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12VectorKernel_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12VectorKernel_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute_VectorKernel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12VectorKernel_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_VectorKernel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_kernel_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.VectorKernel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12VectorKernel_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12VectorKernel_4__setstate_cython__, "VectorKernel.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12VectorKernel_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12VectorKernel_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12VectorKernel_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12VectorKernel_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.VectorKernel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12VectorKernel_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute_VectorKernel *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12VectorKernel_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_VectorKernel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_kernel_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.VectorKernel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":230
 *     cdef const CScalarAggregateKernel* kernel
 * 
 *     cdef void init(self, const CScalarAggregateKernel* kernel) except *:             # <<<<<<<<<<<<<<
 *         self.kernel = kernel
 * 
*/

static void __pyx_f_7pyarrow_8_compute_21ScalarAggregateKernel_init(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *__pyx_v_self,  arrow::compute::ScalarAggregateKernel const *__pyx_v_kernel) {

  /* "pyarrow/_compute.pyx":231
 * 
 *     cdef void init(self, const CScalarAggregateKernel* kernel) except *:
 *         self.kernel = kernel             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __pyx_v_self->kernel = __pyx_v_kernel;

  /* "pyarrow/_compute.pyx":230
 *     cdef const CScalarAggregateKernel* kernel
 * 
 *     cdef void init(self, const CScalarAggregateKernel* kernel) except *:             # <<<<<<<<<<<<<<
 *         self.kernel = kernel
 * 
*/

  /* function exit code */
}

/* "pyarrow/_compute.pyx":233
 *         self.kernel = kernel
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"ScalarAggregateKernel<{frombytes(self.kernel.signature.get().ToString())}>"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_1__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_1__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21ScalarAggregateKernel___repr__(((struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21ScalarAggregateKernel___repr__(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "pyarrow/_compute.pyx":234
 * 
 *     def __repr__(self):
 *         return f"ScalarAggregateKernel<{frombytes(self.kernel.signature.get().ToString())}>"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_self->kernel->signature.get()->ToString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_t_3, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_ScalarAggregateKernel;
  __pyx_t_4[1] = __pyx_t_2;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u__4;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, 22 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":233
 *         self.kernel = kernel
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"ScalarAggregateKernel<{frombytes(self.kernel.signature.get().ToString())}>"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.ScalarAggregateKernel.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_21ScalarAggregateKernel_2__reduce_cython__, "ScalarAggregateKernel.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_21ScalarAggregateKernel_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21ScalarAggregateKernel_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21ScalarAggregateKernel_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21ScalarAggregateKernel_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_kernel_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.ScalarAggregateKernel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_21ScalarAggregateKernel_4__setstate_cython__, "ScalarAggregateKernel.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_21ScalarAggregateKernel_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21ScalarAggregateKernel_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ScalarAggregateKernel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21ScalarAggregateKernel_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21ScalarAggregateKernel_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_kernel_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.ScalarAggregateKernel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":240
 *     cdef const CHashAggregateKernel* kernel
 * 
 *     cdef void init(self, const CHashAggregateKernel* kernel) except *:             # <<<<<<<<<<<<<<
 *         self.kernel = kernel
 * 
*/

static void __pyx_f_7pyarrow_8_compute_19HashAggregateKernel_init(struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *__pyx_v_self,  arrow::compute::HashAggregateKernel const *__pyx_v_kernel) {

  /* "pyarrow/_compute.pyx":241
 * 
 *     cdef void init(self, const CHashAggregateKernel* kernel) except *:
 *         self.kernel = kernel             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __pyx_v_self->kernel = __pyx_v_kernel;

  /* "pyarrow/_compute.pyx":240
 *     cdef const CHashAggregateKernel* kernel
 * 
 *     cdef void init(self, const CHashAggregateKernel* kernel) except *:             # <<<<<<<<<<<<<<
 *         self.kernel = kernel
 * 
*/

  /* function exit code */
}

/* "pyarrow/_compute.pyx":243
 *         self.kernel = kernel
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"HashAggregateKernel<{frombytes(self.kernel.signature.get().ToString())}>"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_1__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_1__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19HashAggregateKernel___repr__(((struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19HashAggregateKernel___repr__(struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "pyarrow/_compute.pyx":244
 * 
 *     def __repr__(self):
 *         return f"HashAggregateKernel<{frombytes(self.kernel.signature.get().ToString())}>"             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_self->kernel->signature.get()->ToString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_t_3, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_HashAggregateKernel;
  __pyx_t_4[1] = __pyx_t_2;
  __pyx_t_4[2] = __pyx_mstate_global->__pyx_kp_u__4;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_4, 3, 20 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":243
 *         self.kernel = kernel
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"HashAggregateKernel<{frombytes(self.kernel.signature.get().ToString())}>"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.HashAggregateKernel.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19HashAggregateKernel_2__reduce_cython__, "HashAggregateKernel.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19HashAggregateKernel_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19HashAggregateKernel_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19HashAggregateKernel_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19HashAggregateKernel_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_kernel_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.HashAggregateKernel.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19HashAggregateKernel_4__setstate_cython__, "HashAggregateKernel.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19HashAggregateKernel_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19HashAggregateKernel_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.HashAggregateKernel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19HashAggregateKernel_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19HashAggregateKernel_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_kernel_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.HashAggregateKernel.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":295
 *     }
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")
 * 
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_8Function_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_8Function_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__init__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_8Function___init__(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_8Function___init__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[3];
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":296
 * 
 *     def __init__(self):
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")             # <<<<<<<<<<<<<<
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_Do_not_call;
  __pyx_t_5[1] = __pyx_t_3;
  __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u_s_constructor_directly;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, 12 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 23, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(0, 296, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":295
 *     }
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":298
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         self.sp_func = sp_func
 *         self.base_func = sp_func.get()
*/

static void __pyx_f_7pyarrow_8_compute_8Function_init(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {

  /* "pyarrow/_compute.pyx":299
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         self.sp_func = sp_func             # <<<<<<<<<<<<<<
 *         self.base_func = sp_func.get()
 * 
*/
  __pyx_v_self->sp_func = __pyx_v_sp_func;

  /* "pyarrow/_compute.pyx":300
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         self.sp_func = sp_func
 *         self.base_func = sp_func.get()             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __pyx_v_self->base_func = __pyx_v_sp_func.get();

  /* "pyarrow/_compute.pyx":298
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         self.sp_func = sp_func
 *         self.base_func = sp_func.get()
*/

  /* function exit code */
}

/* "pyarrow/_compute.pyx":302
 *         self.base_func = sp_func.get()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"arrow.compute.Function<name={self.name}, kind={self.kind}, arity={self.arity}, num_kernels={self.num_kernels}>"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_3__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_3__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_8Function_2__repr__(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_2__repr__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6[9];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "pyarrow/_compute.pyx":303
 * 
 *     def __repr__(self):
 *         return f"arrow.compute.Function<name={self.name}, kind={self.kind}, arity={self.arity}, num_kernels={self.num_kernels}>"             # <<<<<<<<<<<<<<
 * 
 *     def __reduce__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_kind_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_arity_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_num_kernels_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6[0] = __pyx_mstate_global->__pyx_kp_u_arrow_compute_Function_name;
  __pyx_t_6[1] = __pyx_t_2;
  __pyx_t_6[2] = __pyx_mstate_global->__pyx_kp_u_kind;
  __pyx_t_6[3] = __pyx_t_3;
  __pyx_t_6[4] = __pyx_mstate_global->__pyx_kp_u_arity;
  __pyx_t_6[5] = __pyx_t_4;
  __pyx_t_6[6] = __pyx_mstate_global->__pyx_kp_u_num_kernels;
  __pyx_t_6[7] = __pyx_t_5;
  __pyx_t_6[8] = __pyx_mstate_global->__pyx_kp_u__4;
  __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_6, 9, 28 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 7 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 14 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":302
 *         self.base_func = sp_func.get()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"arrow.compute.Function<name={self.name}, kind={self.kind}, arity={self.arity}, num_kernels={self.num_kernels}>"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pyarrow._compute.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":305
 *         return f"arrow.compute.Function<name={self.name}, kind={self.kind}, arity={self.arity}, num_kernels={self.num_kernels}>"
 * 
 *     def __reduce__(self):             # <<<<<<<<<<<<<<
 *         # Reduction uses the global registry
 *         return get_function, (self.name,)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_5__reduce__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_8Function_4__reduce__, "Function.__reduce__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_8Function_5__reduce__ = {"__reduce__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_8Function_5__reduce__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_8Function_4__reduce__};
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_5__reduce__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_8Function_4__reduce__(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_4__reduce__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce__", 0);

  /* "pyarrow/_compute.pyx":307
 *     def __reduce__(self):
 *         # Reduction uses the global registry
 *         return get_function, (self.name,)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_get_function); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2) != (0)) __PYX_ERR(0, 307, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 307, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3) != (0)) __PYX_ERR(0, 307, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":305
 *         return f"arrow.compute.Function<name={self.name}, kind={self.kind}, arity={self.arity}, num_kernels={self.num_kernels}>"
 * 
 *     def __reduce__(self):             # <<<<<<<<<<<<<<
 *         # Reduction uses the global registry
 *         return get_function, (self.name,)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Function.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":309
 *         return get_function, (self.name,)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def name(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_4name_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_8Function_4name___get__(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_4name___get__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":314
 *         The function name.
 *         """
 *         return frombytes(self.base_func.name())             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_self->base_func->name()); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":309
 *         return get_function, (self.name,)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def name(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.Function.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":316
 *         return frombytes(self.base_func.name())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def arity(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_5arity_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_5arity_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_8Function_5arity___get__(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_5arity___get__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self) {
   arrow::compute::Arity __pyx_v_arity;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":324
 *         number of arguments.
 *         """
 *         cdef CArity arity = self.base_func.arity()             # <<<<<<<<<<<<<<
 *         if arity.is_varargs:
 *             return ...
*/
  __pyx_v_arity = __pyx_v_self->base_func->arity();

  /* "pyarrow/_compute.pyx":325
 *         """
 *         cdef CArity arity = self.base_func.arity()
 *         if arity.is_varargs:             # <<<<<<<<<<<<<<
 *             return ...
 *         else:
*/
  __pyx_t_1 = (__pyx_v_arity.is_varargs != 0);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":326
 *         cdef CArity arity = self.base_func.arity()
 *         if arity.is_varargs:
 *             return ...             # <<<<<<<<<<<<<<
 *         else:
 *             return arity.num_args
*/
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_Ellipsis);
    __pyx_r = Py_Ellipsis;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":325
 *         """
 *         cdef CArity arity = self.base_func.arity()
 *         if arity.is_varargs:             # <<<<<<<<<<<<<<
 *             return ...
 *         else:
*/
  }

  /* "pyarrow/_compute.pyx":328
 *             return ...
 *         else:
 *             return arity.num_args             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_arity.num_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "pyarrow/_compute.pyx":316
 *         return frombytes(self.base_func.name())
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def arity(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.Function.arity.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":330
 *             return arity.num_args
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def kind(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_4kind_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_4kind_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_8Function_4kind___get__(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_4kind___get__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self) {
  enum  arrow::compute::Function::Kind __pyx_v_c_kind;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  size_t __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":335
 *         The function kind.
 *         """
 *         cdef FunctionKind c_kind = self.base_func.kind()             # <<<<<<<<<<<<<<
 *         try:
 *             return self._kind_map[c_kind]
*/
  __pyx_v_c_kind = __pyx_v_self->base_func->kind();

  /* "pyarrow/_compute.pyx":336
 *         """
 *         cdef FunctionKind c_kind = self.base_func.kind()
 *         try:             # <<<<<<<<<<<<<<
 *             return self._kind_map[c_kind]
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "pyarrow/_compute.pyx":337
 *         cdef FunctionKind c_kind = self.base_func.kind()
 *         try:
 *             return self._kind_map[c_kind]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             raise NotImplementedError("Unknown Function::Kind")
*/
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_kind_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 337, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyLong_From_enum____arrow_3a__3a_compute_3a__3a_Function_3a__3a_Kind(__pyx_v_c_kind); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 337, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 337, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_r = __pyx_t_6;
      __pyx_t_6 = 0;
      goto __pyx_L7_try_return;

      /* "pyarrow/_compute.pyx":336
 *         """
 *         cdef FunctionKind c_kind = self.base_func.kind()
 *         try:             # <<<<<<<<<<<<<<
 *             return self._kind_map[c_kind]
 *         except KeyError:
*/
    }
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "pyarrow/_compute.pyx":338
 *         try:
 *             return self._kind_map[c_kind]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             raise NotImplementedError("Unknown Function::Kind")
 * 
*/
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_7) {
      __Pyx_AddTraceback("pyarrow._compute.Function.kind.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(0, 338, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);

      /* "pyarrow/_compute.pyx":339
 *             return self._kind_map[c_kind]
 *         except KeyError:
 *             raise NotImplementedError("Unknown Function::Kind")             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
      __pyx_t_9 = NULL;
      __pyx_t_10 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_Unknown_Function_Kind};
        __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_NotImplementedError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 339, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
      }
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(0, 339, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;

    /* "pyarrow/_compute.pyx":336
 *         """
 *         cdef FunctionKind c_kind = self.base_func.kind()
 *         try:             # <<<<<<<<<<<<<<
 *             return self._kind_map[c_kind]
 *         except KeyError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L7_try_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
  }

  /* "pyarrow/_compute.pyx":330
 *             return arity.num_args
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def kind(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pyarrow._compute.Function.kind.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":341
 *             raise NotImplementedError("Unknown Function::Kind")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def _doc(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_4_doc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_4_doc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_8Function_4_doc___get__(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_4_doc___get__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self) {
   arrow::compute::FunctionDoc __pyx_v_c_doc;
  std::string __pyx_8genexpr1__pyx_v_s;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  std::vector<std::string> ::iterator __pyx_t_10;
  std::string __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":346
 *         The C++-like function documentation (for internal use).
 *         """
 *         cdef CFunctionDoc c_doc = self.base_func.doc()             # <<<<<<<<<<<<<<
 *         return FunctionDoc(frombytes(c_doc.summary),
 *                            frombytes(c_doc.description),
*/
  __pyx_v_c_doc = __pyx_v_self->base_func->doc();

  /* "pyarrow/_compute.pyx":347
 *         """
 *         cdef CFunctionDoc c_doc = self.base_func.doc()
 *         return FunctionDoc(frombytes(c_doc.summary),             # <<<<<<<<<<<<<<
 *                            frombytes(c_doc.description),
 *                            [frombytes(s) for s in c_doc.arg_names],
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_FunctionDoc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_c_doc.summary); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
    assert(__pyx_t_5);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
    __pyx_t_8 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
    __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 347, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }

  /* "pyarrow/_compute.pyx":348
 *         cdef CFunctionDoc c_doc = self.base_func.doc()
 *         return FunctionDoc(frombytes(c_doc.summary),
 *                            frombytes(c_doc.description),             # <<<<<<<<<<<<<<
 *                            [frombytes(s) for s in c_doc.arg_names],
 *                            frombytes(c_doc.options_class),
*/
  __pyx_t_7 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_c_doc.description); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_7);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_8 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_9};
    __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 348, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
  }
  { /* enter inner scope */

    /* "pyarrow/_compute.pyx":349
 *         return FunctionDoc(frombytes(c_doc.summary),
 *                            frombytes(c_doc.description),
 *                            [frombytes(s) for s in c_doc.arg_names],             # <<<<<<<<<<<<<<
 *                            frombytes(c_doc.options_class),
 *                            c_doc.options_required)
*/
    __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = __pyx_v_c_doc.arg_names.begin();
    for (; __pyx_t_10 != __pyx_v_c_doc.arg_names.end(); ++__pyx_t_10) {
      __pyx_t_11 = *__pyx_t_10;
      __pyx_8genexpr1__pyx_v_s = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_11);
      __pyx_t_7 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 349, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_13 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_8genexpr1__pyx_v_s); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 349, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_12))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_12);
        assert(__pyx_t_7);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_13};
        __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 349, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
      }
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 349, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
  } /* exit inner scope */

  /* "pyarrow/_compute.pyx":350
 *                            frombytes(c_doc.description),
 *                            [frombytes(s) for s in c_doc.arg_names],
 *                            frombytes(c_doc.options_class),             # <<<<<<<<<<<<<<
 *                            c_doc.options_required)
 * 
*/
  __pyx_t_12 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_7 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_c_doc.options_class); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
    assert(__pyx_t_12);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_12);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
    __pyx_t_8 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_7};
    __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 350, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
  }

  /* "pyarrow/_compute.pyx":351
 *                            [frombytes(s) for s in c_doc.arg_names],
 *                            frombytes(c_doc.options_class),
 *                            c_doc.options_required)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_c_doc.options_required); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_8 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_8 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_2, __pyx_t_4, __pyx_t_6, __pyx_t_5, __pyx_t_9, __pyx_t_13};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_8, (6-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":341
 *             raise NotImplementedError("Unknown Function::Kind")
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def _doc(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("pyarrow._compute.Function._doc.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":353
 *                            c_doc.options_required)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def num_kernels(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_11num_kernels_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_11num_kernels_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_8Function_11num_kernels___get__(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_11num_kernels___get__(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":358
 *         The number of kernels implementing this function.
 *         """
 *         return self.base_func.num_kernels()             # <<<<<<<<<<<<<<
 * 
 *     def call(self, args, FunctionOptions options=None,
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_self->base_func->num_kernels()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":353
 *                            c_doc.options_required)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def num_kernels(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.Function.num_kernels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":360
 *         return self.base_func.num_kernels()
 * 
 *     def call(self, args, FunctionOptions options=None,             # <<<<<<<<<<<<<<
 *              MemoryPool memory_pool=None, length=None):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_7call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_8Function_6call, "Function.call(self, args, FunctionOptions options=None, MemoryPool memory_pool=None, length=None)\n\nCall the function on the given arguments.\n\nParameters\n----------\nargs : iterable\n    The arguments to pass to the function.  Accepted types depend\n    on the specific function.\noptions : FunctionOptions, optional\n    Options instance for executing this function.  This should have\n    the right concrete options type.\nmemory_pool : pyarrow.MemoryPool, optional\n    If not passed, will allocate memory from the default memory pool.\nlength : int, optional\n    Batch size for execution, for nullary (no argument) functions. If\n    not passed, will be inferred from passed data.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_8Function_7call = {"call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_8Function_7call, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_8Function_6call};
static PyObject *__pyx_pw_7pyarrow_8_compute_8Function_7call(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_args = 0;
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_options = 0;
  struct __pyx_obj_7pyarrow_3lib_MemoryPool *__pyx_v_memory_pool = 0;
  PyObject *__pyx_v_length = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_args,&__pyx_mstate_global->__pyx_n_u_options,&__pyx_mstate_global->__pyx_n_u_memory_pool,&__pyx_mstate_global->__pyx_n_u_length,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 360, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 360, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 360, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 360, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 360, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "call", 0) < (0)) __PYX_ERR(0, 360, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef((PyObject *)((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)Py_None));

      /* "pyarrow/_compute.pyx":361
 * 
 *     def call(self, args, FunctionOptions options=None,
 *              MemoryPool memory_pool=None, length=None):             # <<<<<<<<<<<<<<
 *         """
 *         Call the function on the given arguments.
*/
      if (!values[2]) values[2] = __Pyx_NewRef((PyObject *)((struct __pyx_obj_7pyarrow_3lib_MemoryPool *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("call", 0, 1, 4, i); __PYX_ERR(0, 360, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 360, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 360, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 360, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 360, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }

      /* "pyarrow/_compute.pyx":360
 *         return self.base_func.num_kernels()
 * 
 *     def call(self, args, FunctionOptions options=None,             # <<<<<<<<<<<<<<
 *              MemoryPool memory_pool=None, length=None):
 *         """
*/
      if (!values[1]) values[1] = __Pyx_NewRef((PyObject *)((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)Py_None));

      /* "pyarrow/_compute.pyx":361
 * 
 *     def call(self, args, FunctionOptions options=None,
 *              MemoryPool memory_pool=None, length=None):             # <<<<<<<<<<<<<<
 *         """
 *         Call the function on the given arguments.
*/
      if (!values[2]) values[2] = __Pyx_NewRef((PyObject *)((struct __pyx_obj_7pyarrow_3lib_MemoryPool *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_args = values[0];
    __pyx_v_options = ((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)values[1]);
    __pyx_v_memory_pool = ((struct __pyx_obj_7pyarrow_3lib_MemoryPool *)values[2]);
    __pyx_v_length = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("call", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 360, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Function.call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_options), __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions, 1, "options", 0))) __PYX_ERR(0, 360, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memory_pool), __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_MemoryPool, 1, "memory_pool", 0))) __PYX_ERR(0, 361, __pyx_L1_error)
  __pyx_r = __pyx_pf_7pyarrow_8_compute_8Function_6call(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self), __pyx_v_args, __pyx_v_options, __pyx_v_memory_pool, __pyx_v_length);

  /* "pyarrow/_compute.pyx":360
 *         return self.base_func.num_kernels()
 * 
 *     def call(self, args, FunctionOptions options=None,             # <<<<<<<<<<<<<<
 *              MemoryPool memory_pool=None, length=None):
 *         """
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_8Function_6call(struct __pyx_obj_7pyarrow_8_compute_Function *__pyx_v_self, PyObject *__pyx_v_args, struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_options, struct __pyx_obj_7pyarrow_3lib_MemoryPool *__pyx_v_memory_pool, PyObject *__pyx_v_length) {
   arrow::compute::FunctionOptions const *__pyx_v_c_options;
   arrow::MemoryPool *__pyx_v_pool;
   arrow::compute::ExecContext __pyx_v_c_exec_ctx;
  arrow::compute::ExecBatch __pyx_v_c_batch;
   arrow::Datum __pyx_v_result;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
   arrow::MemoryPool *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
   arrow::compute::FunctionOptions const *__pyx_t_4;
  int64_t __pyx_t_5;
   arrow::Datum __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("call", 0);

  /* "pyarrow/_compute.pyx":380
 *         """
 *         cdef:
 *             const CFunctionOptions* c_options = NULL             # <<<<<<<<<<<<<<
 *             CMemoryPool* pool = maybe_unbox_memory_pool(memory_pool)
 *             CExecContext c_exec_ctx = CExecContext(pool)
*/
  __pyx_v_c_options = NULL;

  /* "pyarrow/_compute.pyx":381
 *         cdef:
 *             const CFunctionOptions* c_options = NULL
 *             CMemoryPool* pool = maybe_unbox_memory_pool(memory_pool)             # <<<<<<<<<<<<<<
 *             CExecContext c_exec_ctx = CExecContext(pool)
 *             CExecBatch c_batch
*/
  __pyx_t_1 = __pyx_f_7pyarrow_3lib_maybe_unbox_memory_pool(__pyx_v_memory_pool); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 381, __pyx_L1_error)
  __pyx_v_pool = __pyx_t_1;

  /* "pyarrow/_compute.pyx":382
 *             const CFunctionOptions* c_options = NULL
 *             CMemoryPool* pool = maybe_unbox_memory_pool(memory_pool)
 *             CExecContext c_exec_ctx = CExecContext(pool)             # <<<<<<<<<<<<<<
 *             CExecBatch c_batch
 *             CDatum result
*/
  __pyx_v_c_exec_ctx =  arrow::compute::ExecContext(__pyx_v_pool);

  /* "pyarrow/_compute.pyx":386
 *             CDatum result
 * 
 *         _pack_compute_args(args, &c_batch.values)             # <<<<<<<<<<<<<<
 * 
 *         if options is not None:
*/
  __pyx_t_2 = __pyx_f_7pyarrow_8_compute__pack_compute_args(__pyx_v_args, (&__pyx_v_c_batch.values)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":388
 *         _pack_compute_args(args, &c_batch.values)
 * 
 *         if options is not None:             # <<<<<<<<<<<<<<
 *             c_options = options.get_options()
 * 
*/
  __pyx_t_3 = (((PyObject *)__pyx_v_options) != Py_None);
  if (__pyx_t_3) {

    /* "pyarrow/_compute.pyx":389
 * 
 *         if options is not None:
 *             c_options = options.get_options()             # <<<<<<<<<<<<<<
 * 
 *         if length is not None:
*/
    __pyx_t_4 = ((struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions *)__pyx_v_options->__pyx_vtab)->get_options(__pyx_v_options); if (unlikely(__pyx_t_4 == ((void *)NULL))) __PYX_ERR(0, 389, __pyx_L1_error)
    __pyx_v_c_options = __pyx_t_4;

    /* "pyarrow/_compute.pyx":388
 *         _pack_compute_args(args, &c_batch.values)
 * 
 *         if options is not None:             # <<<<<<<<<<<<<<
 *             c_options = options.get_options()
 * 
*/
  }

  /* "pyarrow/_compute.pyx":391
 *             c_options = options.get_options()
 * 
 *         if length is not None:             # <<<<<<<<<<<<<<
 *             c_batch.length = length
 *             with nogil:
*/
  __pyx_t_3 = (__pyx_v_length != Py_None);
  if (__pyx_t_3) {

    /* "pyarrow/_compute.pyx":392
 * 
 *         if length is not None:
 *             c_batch.length = length             # <<<<<<<<<<<<<<
 *             with nogil:
 *                 result = GetResultValue(
*/
    __pyx_t_5 = __Pyx_PyLong_As_int64_t(__pyx_v_length); if (unlikely((__pyx_t_5 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 392, __pyx_L1_error)
    __pyx_v_c_batch.length = __pyx_t_5;

    /* "pyarrow/_compute.pyx":393
 *         if length is not None:
 *             c_batch.length = length
 *             with nogil:             # <<<<<<<<<<<<<<
 *                 result = GetResultValue(
 *                     self.base_func.Execute(c_batch, c_options, &c_exec_ctx)
*/
    {
        PyThreadState * _save;
        _save = PyEval_SaveThread();
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "pyarrow/_compute.pyx":394
 *             c_batch.length = length
 *             with nogil:
 *                 result = GetResultValue(             # <<<<<<<<<<<<<<
 *                     self.base_func.Execute(c_batch, c_options, &c_exec_ctx)
 *                 )
*/
          __pyx_t_6 = arrow::py::GetResultValue< arrow::Datum>(__pyx_v_self->base_func->Execute(__pyx_v_c_batch, __pyx_v_c_options, (&__pyx_v_c_exec_ctx))); if (unlikely(__Pyx_ErrOccurredWithGIL())) __PYX_ERR(0, 394, __pyx_L6_error)
          __pyx_v_result = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_6);
        }

        /* "pyarrow/_compute.pyx":393
 *         if length is not None:
 *             c_batch.length = length
 *             with nogil:             # <<<<<<<<<<<<<<
 *                 result = GetResultValue(
 *                     self.base_func.Execute(c_batch, c_options, &c_exec_ctx)
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            PyEval_RestoreThread(_save);
            goto __pyx_L7;
          }
          __pyx_L6_error: {
            __Pyx_FastGIL_Forget();
            PyEval_RestoreThread(_save);
            goto __pyx_L1_error;
          }
          __pyx_L7:;
        }
    }

    /* "pyarrow/_compute.pyx":391
 *             c_options = options.get_options()
 * 
 *         if length is not None:             # <<<<<<<<<<<<<<
 *             c_batch.length = length
 *             with nogil:
*/
    goto __pyx_L4;
  }

  /* "pyarrow/_compute.pyx":398
 *                 )
 *         else:
 *             with nogil:             # <<<<<<<<<<<<<<
 *                 result = GetResultValue(
 *                     self.base_func.Execute(c_batch.values, c_options,
*/
  /*else*/ {
    {
        PyThreadState * _save;
        _save = PyEval_SaveThread();
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "pyarrow/_compute.pyx":399
 *         else:
 *             with nogil:
 *                 result = GetResultValue(             # <<<<<<<<<<<<<<
 *                     self.base_func.Execute(c_batch.values, c_options,
 *                                            &c_exec_ctx)
*/
          __pyx_t_6 = arrow::py::GetResultValue< arrow::Datum>(__pyx_v_self->base_func->Execute(__pyx_v_c_batch.values, __pyx_v_c_options, (&__pyx_v_c_exec_ctx))); if (unlikely(__Pyx_ErrOccurredWithGIL())) __PYX_ERR(0, 399, __pyx_L9_error)
          __pyx_v_result = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_6);
        }

        /* "pyarrow/_compute.pyx":398
 *                 )
 *         else:
 *             with nogil:             # <<<<<<<<<<<<<<
 *                 result = GetResultValue(
 *                     self.base_func.Execute(c_batch.values, c_options,
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            PyEval_RestoreThread(_save);
            goto __pyx_L10;
          }
          __pyx_L9_error: {
            __Pyx_FastGIL_Forget();
            PyEval_RestoreThread(_save);
            goto __pyx_L1_error;
          }
          __pyx_L10:;
        }
    }
  }
  __pyx_L4:;

  /* "pyarrow/_compute.pyx":404
 *                 )
 * 
 *         return wrap_datum(result)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_f_7pyarrow_3lib_wrap_datum(__pyx_v_result); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":360
 *         return self.base_func.num_kernels()
 * 
 *     def call(self, args, FunctionOptions options=None,             # <<<<<<<<<<<<<<
 *              MemoryPool memory_pool=None, length=None):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.Function.call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":410
 *     cdef const CScalarFunction* func
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         Function.init(self, sp_func)
 *         self.func = <const CScalarFunction*> sp_func.get()
*/

static void __pyx_f_7pyarrow_8_compute_14ScalarFunction_init(struct __pyx_obj_7pyarrow_8_compute_ScalarFunction *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pyarrow/_compute.pyx":411
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         Function.init(self, sp_func)             # <<<<<<<<<<<<<<
 *         self.func = <const CScalarFunction*> sp_func.get()
 * 
*/
  __pyx_f_7pyarrow_8_compute_8Function_init(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self), __pyx_v_sp_func); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":412
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         Function.init(self, sp_func)
 *         self.func = <const CScalarFunction*> sp_func.get()             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __pyx_v_self->func = (( arrow::compute::ScalarFunction const *)__pyx_v_sp_func.get());

  /* "pyarrow/_compute.pyx":410
 *     cdef const CScalarFunction* func
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         Function.init(self, sp_func)
 *         self.func = <const CScalarFunction*> sp_func.get()
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.ScalarFunction.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "pyarrow/_compute.pyx":414
 *         self.func = <const CScalarFunction*> sp_func.get()
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def kernels(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_14ScalarFunction_7kernels_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_14ScalarFunction_7kernels_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14ScalarFunction_7kernels___get__(((struct __pyx_obj_7pyarrow_8_compute_ScalarFunction *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14ScalarFunction_7kernels___get__(struct __pyx_obj_7pyarrow_8_compute_ScalarFunction *__pyx_v_self) {
  std::vector< arrow::compute::ScalarKernel const *>  __pyx_v_kernels;
   arrow::compute::ScalarKernel const *__pyx_8genexpr2__pyx_v_k;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::vector< arrow::compute::ScalarKernel const *> ::iterator __pyx_t_2;
   arrow::compute::ScalarKernel const *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":419
 *         The kernels implementing this function.
 *         """
 *         cdef vector[const CScalarKernel*] kernels = self.func.kernels()             # <<<<<<<<<<<<<<
 *         return [wrap_scalar_kernel(k) for k in kernels]
 * 
*/
  __pyx_v_kernels = __pyx_v_self->func->kernels();

  /* "pyarrow/_compute.pyx":420
 *         """
 *         cdef vector[const CScalarKernel*] kernels = self.func.kernels()
 *         return [wrap_scalar_kernel(k) for k in kernels]             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_kernels.begin();
    for (; __pyx_t_2 != __pyx_v_kernels.end(); ++__pyx_t_2) {
      __pyx_t_3 = *__pyx_t_2;
      __pyx_8genexpr2__pyx_v_k = __pyx_t_3;
      __pyx_t_4 = __pyx_f_7pyarrow_8_compute_wrap_scalar_kernel(__pyx_8genexpr2__pyx_v_k); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 420, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 420, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  } /* exit inner scope */
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":414
 *         self.func = <const CScalarFunction*> sp_func.get()
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def kernels(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.ScalarFunction.kernels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":426
 *     cdef const CVectorFunction* func
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         Function.init(self, sp_func)
 *         self.func = <const CVectorFunction*> sp_func.get()
*/

static void __pyx_f_7pyarrow_8_compute_14VectorFunction_init(struct __pyx_obj_7pyarrow_8_compute_VectorFunction *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pyarrow/_compute.pyx":427
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         Function.init(self, sp_func)             # <<<<<<<<<<<<<<
 *         self.func = <const CVectorFunction*> sp_func.get()
 * 
*/
  __pyx_f_7pyarrow_8_compute_8Function_init(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self), __pyx_v_sp_func); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 427, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":428
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         Function.init(self, sp_func)
 *         self.func = <const CVectorFunction*> sp_func.get()             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __pyx_v_self->func = (( arrow::compute::VectorFunction const *)__pyx_v_sp_func.get());

  /* "pyarrow/_compute.pyx":426
 *     cdef const CVectorFunction* func
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         Function.init(self, sp_func)
 *         self.func = <const CVectorFunction*> sp_func.get()
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.VectorFunction.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "pyarrow/_compute.pyx":430
 *         self.func = <const CVectorFunction*> sp_func.get()
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def kernels(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_14VectorFunction_7kernels_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_14VectorFunction_7kernels_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14VectorFunction_7kernels___get__(((struct __pyx_obj_7pyarrow_8_compute_VectorFunction *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14VectorFunction_7kernels___get__(struct __pyx_obj_7pyarrow_8_compute_VectorFunction *__pyx_v_self) {
  std::vector< arrow::compute::VectorKernel const *>  __pyx_v_kernels;
   arrow::compute::VectorKernel const *__pyx_8genexpr3__pyx_v_k;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::vector< arrow::compute::VectorKernel const *> ::iterator __pyx_t_2;
   arrow::compute::VectorKernel const *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":435
 *         The kernels implementing this function.
 *         """
 *         cdef vector[const CVectorKernel*] kernels = self.func.kernels()             # <<<<<<<<<<<<<<
 *         return [wrap_vector_kernel(k) for k in kernels]
 * 
*/
  __pyx_v_kernels = __pyx_v_self->func->kernels();

  /* "pyarrow/_compute.pyx":436
 *         """
 *         cdef vector[const CVectorKernel*] kernels = self.func.kernels()
 *         return [wrap_vector_kernel(k) for k in kernels]             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_kernels.begin();
    for (; __pyx_t_2 != __pyx_v_kernels.end(); ++__pyx_t_2) {
      __pyx_t_3 = *__pyx_t_2;
      __pyx_8genexpr3__pyx_v_k = __pyx_t_3;
      __pyx_t_4 = __pyx_f_7pyarrow_8_compute_wrap_vector_kernel(__pyx_8genexpr3__pyx_v_k); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 436, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 436, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  } /* exit inner scope */
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":430
 *         self.func = <const CVectorFunction*> sp_func.get()
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def kernels(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.VectorFunction.kernels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":442
 *     cdef const CScalarAggregateFunction* func
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         Function.init(self, sp_func)
 *         self.func = <const CScalarAggregateFunction*> sp_func.get()
*/

static void __pyx_f_7pyarrow_8_compute_23ScalarAggregateFunction_init(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pyarrow/_compute.pyx":443
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         Function.init(self, sp_func)             # <<<<<<<<<<<<<<
 *         self.func = <const CScalarAggregateFunction*> sp_func.get()
 * 
*/
  __pyx_f_7pyarrow_8_compute_8Function_init(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self), __pyx_v_sp_func); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 443, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":444
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         Function.init(self, sp_func)
 *         self.func = <const CScalarAggregateFunction*> sp_func.get()             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __pyx_v_self->func = (( arrow::compute::ScalarAggregateFunction const *)__pyx_v_sp_func.get());

  /* "pyarrow/_compute.pyx":442
 *     cdef const CScalarAggregateFunction* func
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         Function.init(self, sp_func)
 *         self.func = <const CScalarAggregateFunction*> sp_func.get()
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.ScalarAggregateFunction.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "pyarrow/_compute.pyx":446
 *         self.func = <const CScalarAggregateFunction*> sp_func.get()
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def kernels(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_23ScalarAggregateFunction_7kernels_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_23ScalarAggregateFunction_7kernels_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_23ScalarAggregateFunction_7kernels___get__(((struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_23ScalarAggregateFunction_7kernels___get__(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction *__pyx_v_self) {
  std::vector< arrow::compute::ScalarAggregateKernel const *>  __pyx_v_kernels;
   arrow::compute::ScalarAggregateKernel const *__pyx_8genexpr4__pyx_v_k;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::vector< arrow::compute::ScalarAggregateKernel const *> ::iterator __pyx_t_2;
   arrow::compute::ScalarAggregateKernel const *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":452
 *         """
 *         cdef vector[const CScalarAggregateKernel*] kernels = \
 *             self.func.kernels()             # <<<<<<<<<<<<<<
 *         return [wrap_scalar_aggregate_kernel(k) for k in kernels]
 * 
*/
  __pyx_v_kernels = __pyx_v_self->func->kernels();

  /* "pyarrow/_compute.pyx":453
 *         cdef vector[const CScalarAggregateKernel*] kernels = \
 *             self.func.kernels()
 *         return [wrap_scalar_aggregate_kernel(k) for k in kernels]             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 453, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_kernels.begin();
    for (; __pyx_t_2 != __pyx_v_kernels.end(); ++__pyx_t_2) {
      __pyx_t_3 = *__pyx_t_2;
      __pyx_8genexpr4__pyx_v_k = __pyx_t_3;
      __pyx_t_4 = __pyx_f_7pyarrow_8_compute_wrap_scalar_aggregate_kernel(__pyx_8genexpr4__pyx_v_k); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 453, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 453, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  } /* exit inner scope */
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":446
 *         self.func = <const CScalarAggregateFunction*> sp_func.get()
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def kernels(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.ScalarAggregateFunction.kernels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":459
 *     cdef const CHashAggregateFunction* func
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         Function.init(self, sp_func)
 *         self.func = <const CHashAggregateFunction*> sp_func.get()
*/

static void __pyx_f_7pyarrow_8_compute_21HashAggregateFunction_init(struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pyarrow/_compute.pyx":460
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         Function.init(self, sp_func)             # <<<<<<<<<<<<<<
 *         self.func = <const CHashAggregateFunction*> sp_func.get()
 * 
*/
  __pyx_f_7pyarrow_8_compute_8Function_init(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self), __pyx_v_sp_func); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 460, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":461
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         Function.init(self, sp_func)
 *         self.func = <const CHashAggregateFunction*> sp_func.get()             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __pyx_v_self->func = (( arrow::compute::HashAggregateFunction const *)__pyx_v_sp_func.get());

  /* "pyarrow/_compute.pyx":459
 *     cdef const CHashAggregateFunction* func
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         Function.init(self, sp_func)
 *         self.func = <const CHashAggregateFunction*> sp_func.get()
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.HashAggregateFunction.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "pyarrow/_compute.pyx":463
 *         self.func = <const CHashAggregateFunction*> sp_func.get()
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def kernels(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21HashAggregateFunction_7kernels_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_21HashAggregateFunction_7kernels_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21HashAggregateFunction_7kernels___get__(((struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21HashAggregateFunction_7kernels___get__(struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction *__pyx_v_self) {
  std::vector< arrow::compute::HashAggregateKernel const *>  __pyx_v_kernels;
   arrow::compute::HashAggregateKernel const *__pyx_8genexpr5__pyx_v_k;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::vector< arrow::compute::HashAggregateKernel const *> ::iterator __pyx_t_2;
   arrow::compute::HashAggregateKernel const *__pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":468
 *         The kernels implementing this function.
 *         """
 *         cdef vector[const CHashAggregateKernel*] kernels = self.func.kernels()             # <<<<<<<<<<<<<<
 *         return [wrap_hash_aggregate_kernel(k) for k in kernels]
 * 
*/
  __pyx_v_kernels = __pyx_v_self->func->kernels();

  /* "pyarrow/_compute.pyx":469
 *         """
 *         cdef vector[const CHashAggregateKernel*] kernels = self.func.kernels()
 *         return [wrap_hash_aggregate_kernel(k) for k in kernels]             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 469, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_kernels.begin();
    for (; __pyx_t_2 != __pyx_v_kernels.end(); ++__pyx_t_2) {
      __pyx_t_3 = *__pyx_t_2;
      __pyx_8genexpr5__pyx_v_k = __pyx_t_3;
      __pyx_t_4 = __pyx_f_7pyarrow_8_compute_wrap_hash_aggregate_kernel(__pyx_8genexpr5__pyx_v_k); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 469, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 469, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  } /* exit inner scope */
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":463
 *         self.func = <const CHashAggregateFunction*> sp_func.get()
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def kernels(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.HashAggregateFunction.kernels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":475
 *     cdef const CMetaFunction* func
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         Function.init(self, sp_func)
 *         self.func = <const CMetaFunction*> sp_func.get()
*/

static void __pyx_f_7pyarrow_8_compute_12MetaFunction_init(struct __pyx_obj_7pyarrow_8_compute_MetaFunction *__pyx_v_self, std::shared_ptr< arrow::compute::Function>  const &__pyx_v_sp_func) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pyarrow/_compute.pyx":476
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         Function.init(self, sp_func)             # <<<<<<<<<<<<<<
 *         self.func = <const CMetaFunction*> sp_func.get()
 * 
*/
  __pyx_f_7pyarrow_8_compute_8Function_init(((struct __pyx_obj_7pyarrow_8_compute_Function *)__pyx_v_self), __pyx_v_sp_func); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 476, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":477
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:
 *         Function.init(self, sp_func)
 *         self.func = <const CMetaFunction*> sp_func.get()             # <<<<<<<<<<<<<<
 * 
 *     # Since num_kernels is exposed, also expose a kernels property
*/
  __pyx_v_self->func = (( arrow::compute::MetaFunction const *)__pyx_v_sp_func.get());

  /* "pyarrow/_compute.pyx":475
 *     cdef const CMetaFunction* func
 * 
 *     cdef void init(self, const shared_ptr[CFunction]& sp_func) except *:             # <<<<<<<<<<<<<<
 *         Function.init(self, sp_func)
 *         self.func = <const CMetaFunction*> sp_func.get()
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.MetaFunction.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "pyarrow/_compute.pyx":480
 * 
 *     # Since num_kernels is exposed, also expose a kernels property
 *     @property             # <<<<<<<<<<<<<<
 *     def kernels(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12MetaFunction_7kernels_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_12MetaFunction_7kernels_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12MetaFunction_7kernels___get__(((struct __pyx_obj_7pyarrow_8_compute_MetaFunction *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12MetaFunction_7kernels___get__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_MetaFunction *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":485
 *         The kernels implementing this function.
 *         """
 *         return []             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":480
 * 
 *     # Since num_kernels is exposed, also expose a kernels property
 *     @property             # <<<<<<<<<<<<<<
 *     def kernels(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.MetaFunction.kernels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":488
 * 
 * 
 * cdef _pack_compute_args(object values, vector[CDatum]* out):             # <<<<<<<<<<<<<<
 *     for val in values:
 *         if isinstance(val, SUPPORTED_INPUT_ARR_TYPES):
*/

static PyObject *__pyx_f_7pyarrow_8_compute__pack_compute_args(PyObject *__pyx_v_values, std::vector< arrow::Datum>  *__pyx_v_out) {
  PyObject *__pyx_v_val = NULL;
  PyObject *__pyx_v_scal = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  size_t __pyx_t_9;
  std::shared_ptr< arrow::Scalar>  __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  PyObject *__pyx_t_15[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_pack_compute_args", 0);

  /* "pyarrow/_compute.pyx":489
 * 
 * cdef _pack_compute_args(object values, vector[CDatum]* out):
 *     for val in values:             # <<<<<<<<<<<<<<
 *         if isinstance(val, SUPPORTED_INPUT_ARR_TYPES):
 *             val = lib.asarray(val)
*/
  if (likely(PyList_CheckExact(__pyx_v_values)) || PyTuple_CheckExact(__pyx_v_values)) {
    __pyx_t_1 = __pyx_v_values; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 489, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 489, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 489, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 489, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 489, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 489, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "pyarrow/_compute.pyx":490
 * cdef _pack_compute_args(object values, vector[CDatum]* out):
 *     for val in values:
 *         if isinstance(val, SUPPORTED_INPUT_ARR_TYPES):             # <<<<<<<<<<<<<<
 *             val = lib.asarray(val)
 * 
*/
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SUPPORTED_INPUT_ARR_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 490, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_IsInstance(__pyx_v_val, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 490, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_5) {

      /* "pyarrow/_compute.pyx":491
 *     for val in values:
 *         if isinstance(val, SUPPORTED_INPUT_ARR_TYPES):
 *             val = lib.asarray(val)             # <<<<<<<<<<<<<<
 * 
 *         if isinstance(val, Array):
*/
      __pyx_t_6 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_lib); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 491, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_asarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 491, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_9 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        assert(__pyx_t_6);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
        __pyx_t_9 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_val};
        __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 491, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_DECREF_SET(__pyx_v_val, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "pyarrow/_compute.pyx":490
 * cdef _pack_compute_args(object values, vector[CDatum]* out):
 *     for val in values:
 *         if isinstance(val, SUPPORTED_INPUT_ARR_TYPES):             # <<<<<<<<<<<<<<
 *             val = lib.asarray(val)
 * 
*/
    }

    /* "pyarrow/_compute.pyx":493
 *             val = lib.asarray(val)
 * 
 *         if isinstance(val, Array):             # <<<<<<<<<<<<<<
 *             out.push_back(CDatum((<Array> val).sp_array))
 *             continue
*/
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_val, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Array); 
    if (__pyx_t_5) {

      /* "pyarrow/_compute.pyx":494
 * 
 *         if isinstance(val, Array):
 *             out.push_back(CDatum((<Array> val).sp_array))             # <<<<<<<<<<<<<<
 *             continue
 *         elif isinstance(val, ChunkedArray):
*/
      try {
        __pyx_v_out->push_back( arrow::Datum(((struct __pyx_obj_7pyarrow_3lib_Array *)__pyx_v_val)->sp_array));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 494, __pyx_L1_error)
      }

      /* "pyarrow/_compute.pyx":495
 *         if isinstance(val, Array):
 *             out.push_back(CDatum((<Array> val).sp_array))
 *             continue             # <<<<<<<<<<<<<<
 *         elif isinstance(val, ChunkedArray):
 *             out.push_back(CDatum((<ChunkedArray> val).sp_chunked_array))
*/
      goto __pyx_L3_continue;

      /* "pyarrow/_compute.pyx":493
 *             val = lib.asarray(val)
 * 
 *         if isinstance(val, Array):             # <<<<<<<<<<<<<<
 *             out.push_back(CDatum((<Array> val).sp_array))
 *             continue
*/
    }

    /* "pyarrow/_compute.pyx":496
 *             out.push_back(CDatum((<Array> val).sp_array))
 *             continue
 *         elif isinstance(val, ChunkedArray):             # <<<<<<<<<<<<<<
 *             out.push_back(CDatum((<ChunkedArray> val).sp_chunked_array))
 *             continue
*/
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_val, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_ChunkedArray); 
    if (__pyx_t_5) {

      /* "pyarrow/_compute.pyx":497
 *             continue
 *         elif isinstance(val, ChunkedArray):
 *             out.push_back(CDatum((<ChunkedArray> val).sp_chunked_array))             # <<<<<<<<<<<<<<
 *             continue
 *         elif isinstance(val, Scalar):
*/
      try {
        __pyx_v_out->push_back( arrow::Datum(((struct __pyx_obj_7pyarrow_3lib_ChunkedArray *)__pyx_v_val)->sp_chunked_array));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 497, __pyx_L1_error)
      }

      /* "pyarrow/_compute.pyx":498
 *         elif isinstance(val, ChunkedArray):
 *             out.push_back(CDatum((<ChunkedArray> val).sp_chunked_array))
 *             continue             # <<<<<<<<<<<<<<
 *         elif isinstance(val, Scalar):
 *             out.push_back(CDatum((<Scalar> val).unwrap()))
*/
      goto __pyx_L3_continue;

      /* "pyarrow/_compute.pyx":496
 *             out.push_back(CDatum((<Array> val).sp_array))
 *             continue
 *         elif isinstance(val, ChunkedArray):             # <<<<<<<<<<<<<<
 *             out.push_back(CDatum((<ChunkedArray> val).sp_chunked_array))
 *             continue
*/
    }

    /* "pyarrow/_compute.pyx":499
 *             out.push_back(CDatum((<ChunkedArray> val).sp_chunked_array))
 *             continue
 *         elif isinstance(val, Scalar):             # <<<<<<<<<<<<<<
 *             out.push_back(CDatum((<Scalar> val).unwrap()))
 *             continue
*/
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_val, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Scalar); 
    if (__pyx_t_5) {

      /* "pyarrow/_compute.pyx":500
 *             continue
 *         elif isinstance(val, Scalar):
 *             out.push_back(CDatum((<Scalar> val).unwrap()))             # <<<<<<<<<<<<<<
 *             continue
 *         elif isinstance(val, RecordBatch):
*/
      __pyx_t_10 = ((struct __pyx_vtabstruct_7pyarrow_3lib_Scalar *)((struct __pyx_obj_7pyarrow_3lib_Scalar *)__pyx_v_val)->__pyx_vtab)->unwrap(((struct __pyx_obj_7pyarrow_3lib_Scalar *)__pyx_v_val)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 500, __pyx_L1_error)
      try {
        __pyx_v_out->push_back( arrow::Datum(__pyx_t_10));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 500, __pyx_L1_error)
      }

      /* "pyarrow/_compute.pyx":501
 *         elif isinstance(val, Scalar):
 *             out.push_back(CDatum((<Scalar> val).unwrap()))
 *             continue             # <<<<<<<<<<<<<<
 *         elif isinstance(val, RecordBatch):
 *             out.push_back(CDatum((<RecordBatch> val).sp_batch))
*/
      goto __pyx_L3_continue;

      /* "pyarrow/_compute.pyx":499
 *             out.push_back(CDatum((<ChunkedArray> val).sp_chunked_array))
 *             continue
 *         elif isinstance(val, Scalar):             # <<<<<<<<<<<<<<
 *             out.push_back(CDatum((<Scalar> val).unwrap()))
 *             continue
*/
    }

    /* "pyarrow/_compute.pyx":502
 *             out.push_back(CDatum((<Scalar> val).unwrap()))
 *             continue
 *         elif isinstance(val, RecordBatch):             # <<<<<<<<<<<<<<
 *             out.push_back(CDatum((<RecordBatch> val).sp_batch))
 *             continue
*/
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_val, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_RecordBatch); 
    if (__pyx_t_5) {

      /* "pyarrow/_compute.pyx":503
 *             continue
 *         elif isinstance(val, RecordBatch):
 *             out.push_back(CDatum((<RecordBatch> val).sp_batch))             # <<<<<<<<<<<<<<
 *             continue
 *         elif isinstance(val, Table):
*/
      try {
        __pyx_v_out->push_back( arrow::Datum(((struct __pyx_obj_7pyarrow_3lib_RecordBatch *)__pyx_v_val)->sp_batch));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 503, __pyx_L1_error)
      }

      /* "pyarrow/_compute.pyx":504
 *         elif isinstance(val, RecordBatch):
 *             out.push_back(CDatum((<RecordBatch> val).sp_batch))
 *             continue             # <<<<<<<<<<<<<<
 *         elif isinstance(val, Table):
 *             out.push_back(CDatum((<Table> val).sp_table))
*/
      goto __pyx_L3_continue;

      /* "pyarrow/_compute.pyx":502
 *             out.push_back(CDatum((<Scalar> val).unwrap()))
 *             continue
 *         elif isinstance(val, RecordBatch):             # <<<<<<<<<<<<<<
 *             out.push_back(CDatum((<RecordBatch> val).sp_batch))
 *             continue
*/
    }

    /* "pyarrow/_compute.pyx":505
 *             out.push_back(CDatum((<RecordBatch> val).sp_batch))
 *             continue
 *         elif isinstance(val, Table):             # <<<<<<<<<<<<<<
 *             out.push_back(CDatum((<Table> val).sp_table))
 *             continue
*/
    __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_val, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Table); 
    if (__pyx_t_5) {

      /* "pyarrow/_compute.pyx":506
 *             continue
 *         elif isinstance(val, Table):
 *             out.push_back(CDatum((<Table> val).sp_table))             # <<<<<<<<<<<<<<
 *             continue
 *         else:
*/
      try {
        __pyx_v_out->push_back( arrow::Datum(((struct __pyx_obj_7pyarrow_3lib_Table *)__pyx_v_val)->sp_table));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 506, __pyx_L1_error)
      }

      /* "pyarrow/_compute.pyx":507
 *         elif isinstance(val, Table):
 *             out.push_back(CDatum((<Table> val).sp_table))
 *             continue             # <<<<<<<<<<<<<<
 *         else:
 *             # Is it a Python scalar?
*/
      goto __pyx_L3_continue;

      /* "pyarrow/_compute.pyx":505
 *             out.push_back(CDatum((<RecordBatch> val).sp_batch))
 *             continue
 *         elif isinstance(val, Table):             # <<<<<<<<<<<<<<
 *             out.push_back(CDatum((<Table> val).sp_table))
 *             continue
*/
    }

    /* "pyarrow/_compute.pyx":510
 *         else:
 *             # Is it a Python scalar?
 *             try:             # <<<<<<<<<<<<<<
 *                 scal = lib.scalar(val)
 *             except Exception:
*/
    /*else*/ {
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
        __Pyx_XGOTREF(__pyx_t_11);
        __Pyx_XGOTREF(__pyx_t_12);
        __Pyx_XGOTREF(__pyx_t_13);
        /*try:*/ {

          /* "pyarrow/_compute.pyx":511
 *             # Is it a Python scalar?
 *             try:
 *                 scal = lib.scalar(val)             # <<<<<<<<<<<<<<
 *             except Exception:
 *                 # Raise dedicated error below
*/
          __pyx_t_8 = NULL;
          __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_lib); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 511, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_scalar); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 511, __pyx_L7_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_9 = 1;
          #if CYTHON_UNPACK_METHODS
          if (unlikely(PyMethod_Check(__pyx_t_7))) {
            __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
            assert(__pyx_t_8);
            PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(__pyx__function);
            __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
            __pyx_t_9 = 0;
          }
          #endif
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_val};
            __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 511, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_XDECREF_SET(__pyx_v_scal, __pyx_t_4);
          __pyx_t_4 = 0;

          /* "pyarrow/_compute.pyx":510
 *         else:
 *             # Is it a Python scalar?
 *             try:             # <<<<<<<<<<<<<<
 *                 scal = lib.scalar(val)
 *             except Exception:
*/
        }

        /* "pyarrow/_compute.pyx":516
 *                 pass
 *             else:
 *                 out.push_back(CDatum((<Scalar> scal).unwrap()))             # <<<<<<<<<<<<<<
 *                 continue
 * 
*/
        /*else:*/ {
          __pyx_t_10 = ((struct __pyx_vtabstruct_7pyarrow_3lib_Scalar *)((struct __pyx_obj_7pyarrow_3lib_Scalar *)__pyx_v_scal)->__pyx_vtab)->unwrap(((struct __pyx_obj_7pyarrow_3lib_Scalar *)__pyx_v_scal)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 516, __pyx_L9_except_error)
          try {
            __pyx_v_out->push_back( arrow::Datum(__pyx_t_10));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 516, __pyx_L9_except_error)
          }

          /* "pyarrow/_compute.pyx":517
 *             else:
 *                 out.push_back(CDatum((<Scalar> scal).unwrap()))
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *         raise TypeError(f"Got unexpected argument type {type(val)} "
*/
          goto __pyx_L13_try_continue;
        }
        __pyx_L7_error:;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

        /* "pyarrow/_compute.pyx":512
 *             try:
 *                 scal = lib.scalar(val)
 *             except Exception:             # <<<<<<<<<<<<<<
 *                 # Raise dedicated error below
 *                 pass
*/
        __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
        if (__pyx_t_14) {
          __Pyx_ErrRestore(0,0,0);
          goto __pyx_L8_exception_handled;
        }
        goto __pyx_L9_except_error;

        /* "pyarrow/_compute.pyx":510
 *         else:
 *             # Is it a Python scalar?
 *             try:             # <<<<<<<<<<<<<<
 *                 scal = lib.scalar(val)
 *             except Exception:
*/
        __pyx_L9_except_error:;
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_XGIVEREF(__pyx_t_13);
        __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
        goto __pyx_L1_error;
        __pyx_L13_try_continue:;
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_XGIVEREF(__pyx_t_13);
        __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
        goto __pyx_L3_continue;
        __pyx_L8_exception_handled:;
        __Pyx_XGIVEREF(__pyx_t_11);
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_XGIVEREF(__pyx_t_13);
        __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
      }
    }

    /* "pyarrow/_compute.pyx":519
 *                 continue
 * 
 *         raise TypeError(f"Got unexpected argument type {type(val)} "             # <<<<<<<<<<<<<<
 *                         "for compute function")
 * 
*/
    __pyx_t_7 = NULL;
    __pyx_t_8 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_val)), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_15[0] = __pyx_mstate_global->__pyx_kp_u_Got_unexpected_argument_type;
    __pyx_t_15[1] = __pyx_t_8;
    __pyx_t_15[2] = __pyx_mstate_global->__pyx_kp_u_for_compute_function;
    __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_15, 3, 29 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 21, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8));
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_9 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_6};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 519, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(0, 519, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":489
 * 
 * cdef _pack_compute_args(object values, vector[CDatum]* out):
 *     for val in values:             # <<<<<<<<<<<<<<
 *         if isinstance(val, SUPPORTED_INPUT_ARR_TYPES):
 *             val = lib.asarray(val)
*/
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":488
 * 
 * 
 * cdef _pack_compute_args(object values, vector[CDatum]* out):             # <<<<<<<<<<<<<<
 *     for val in values:
 *         if isinstance(val, SUPPORTED_INPUT_ARR_TYPES):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pyarrow._compute._pack_compute_args", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_val);
  __Pyx_XDECREF(__pyx_v_scal);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":526
 *     cdef CFunctionRegistry* registry
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.registry = GetFunctionRegistry()
 * 
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_16FunctionRegistry_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_16FunctionRegistry_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__init__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16FunctionRegistry___init__(((struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_16FunctionRegistry___init__(struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *__pyx_v_self) {
  int __pyx_r;

  /* "pyarrow/_compute.pyx":527
 * 
 *     def __init__(self):
 *         self.registry = GetFunctionRegistry()             # <<<<<<<<<<<<<<
 * 
 *     def list_functions(self):
*/
  __pyx_v_self->registry = arrow::compute::GetFunctionRegistry();

  /* "pyarrow/_compute.pyx":526
 *     cdef CFunctionRegistry* registry
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.registry = GetFunctionRegistry()
 * 
*/

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":529
 *         self.registry = GetFunctionRegistry()
 * 
 *     def list_functions(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return all function names in the registry.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_3list_functions(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16FunctionRegistry_2list_functions, "FunctionRegistry.list_functions(self)\n\nReturn all function names in the registry.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16FunctionRegistry_3list_functions = {"list_functions", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_3list_functions, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16FunctionRegistry_2list_functions};
static PyObject *__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_3list_functions(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("list_functions (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("list_functions", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("list_functions", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16FunctionRegistry_2list_functions(((struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16FunctionRegistry_2list_functions(struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *__pyx_v_self) {
  std::vector<std::string>  __pyx_v_names;
  std::string __pyx_8genexpr6__pyx_v_name;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::vector<std::string> ::iterator __pyx_t_2;
  std::string __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("list_functions", 0);

  /* "pyarrow/_compute.pyx":533
 *         Return all function names in the registry.
 *         """
 *         cdef vector[c_string] names = self.registry.GetFunctionNames()             # <<<<<<<<<<<<<<
 *         return [frombytes(name) for name in names]
 * 
*/
  __pyx_v_names = __pyx_v_self->registry->GetFunctionNames();

  /* "pyarrow/_compute.pyx":534
 *         """
 *         cdef vector[c_string] names = self.registry.GetFunctionNames()
 *         return [frombytes(name) for name in names]             # <<<<<<<<<<<<<<
 * 
 *     def get_function(self, name):
*/
  __Pyx_XDECREF(__pyx_r);
  { /* enter inner scope */
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_v_names.begin();
    for (; __pyx_t_2 != __pyx_v_names.end(); ++__pyx_t_2) {
      __pyx_t_3 = *__pyx_t_2;
      __pyx_8genexpr6__pyx_v_name = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_3);
      __pyx_t_5 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 534, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_8genexpr6__pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 534, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        assert(__pyx_t_5);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 534, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 534, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  } /* exit inner scope */
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":529
 *         self.registry = GetFunctionRegistry()
 * 
 *     def list_functions(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return all function names in the registry.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pyarrow._compute.FunctionRegistry.list_functions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":536
 *         return [frombytes(name) for name in names]
 * 
 *     def get_function(self, name):             # <<<<<<<<<<<<<<
 *         """
 *         Look up a function by name in the registry.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_5get_function(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16FunctionRegistry_4get_function, "FunctionRegistry.get_function(self, name)\n\nLook up a function by name in the registry.\n\nParameters\n----------\nname : str\n    The name of the function to lookup");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16FunctionRegistry_5get_function = {"get_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_5get_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16FunctionRegistry_4get_function};
static PyObject *__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_5get_function(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_function (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 536, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 536, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_function", 0) < (0)) __PYX_ERR(0, 536, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_function", 1, 1, 1, i); __PYX_ERR(0, 536, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 536, __pyx_L3_error)
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_function", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 536, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.FunctionRegistry.get_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16FunctionRegistry_4get_function(((struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *)__pyx_v_self), __pyx_v_name);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16FunctionRegistry_4get_function(struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *__pyx_v_self, PyObject *__pyx_v_name) {
  std::string __pyx_v_c_name;
  std::shared_ptr< arrow::compute::Function>  __pyx_v_func;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  std::string __pyx_t_5;
  std::shared_ptr< arrow::compute::Function>  __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_function", 0);

  /* "pyarrow/_compute.pyx":546
 *         """
 *         cdef:
 *             c_string c_name = tobytes(name)             # <<<<<<<<<<<<<<
 *             shared_ptr[CFunction] func
 *         with nogil:
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 546, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 546, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_c_name = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_5);

  /* "pyarrow/_compute.pyx":548
 *             c_string c_name = tobytes(name)
 *             shared_ptr[CFunction] func
 *         with nogil:             # <<<<<<<<<<<<<<
 *             func = GetResultValue(self.registry.GetFunction(c_name))
 *         return wrap_function(func)
*/
  {
      PyThreadState * _save;
      _save = PyEval_SaveThread();
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "pyarrow/_compute.pyx":549
 *             shared_ptr[CFunction] func
 *         with nogil:
 *             func = GetResultValue(self.registry.GetFunction(c_name))             # <<<<<<<<<<<<<<
 *         return wrap_function(func)
 * 
*/
        __pyx_t_6 = arrow::py::GetResultValue<std::shared_ptr< arrow::compute::Function> >(__pyx_v_self->registry->GetFunction(__pyx_v_c_name)); if (unlikely(__Pyx_ErrOccurredWithGIL())) __PYX_ERR(0, 549, __pyx_L4_error)
        __pyx_v_func = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_6);
      }

      /* "pyarrow/_compute.pyx":548
 *             c_string c_name = tobytes(name)
 *             shared_ptr[CFunction] func
 *         with nogil:             # <<<<<<<<<<<<<<
 *             func = GetResultValue(self.registry.GetFunction(c_name))
 *         return wrap_function(func)
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          PyEval_RestoreThread(_save);
          goto __pyx_L5;
        }
        __pyx_L4_error: {
          __Pyx_FastGIL_Forget();
          PyEval_RestoreThread(_save);
          goto __pyx_L1_error;
        }
        __pyx_L5:;
      }
  }

  /* "pyarrow/_compute.pyx":550
 *         with nogil:
 *             func = GetResultValue(self.registry.GetFunction(c_name))
 *         return wrap_function(func)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7pyarrow_8_compute_wrap_function(__pyx_v_func); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":536
 *         return [frombytes(name) for name in names]
 * 
 *     def get_function(self, name):             # <<<<<<<<<<<<<<
 *         """
 *         Look up a function by name in the registry.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.FunctionRegistry.get_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16FunctionRegistry_6__reduce_cython__, "FunctionRegistry.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16FunctionRegistry_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16FunctionRegistry_6__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16FunctionRegistry_6__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16FunctionRegistry_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_registry_cannot_be_converte, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.FunctionRegistry.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16FunctionRegistry_8__setstate_cython__, "FunctionRegistry.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16FunctionRegistry_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16FunctionRegistry_8__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.FunctionRegistry.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16FunctionRegistry_8__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16FunctionRegistry_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_registry_cannot_be_converte, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.FunctionRegistry.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":556
 * 
 * 
 * def function_registry():             # <<<<<<<<<<<<<<
 *     return _global_func_registry
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_5function_registry(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_4function_registry, "function_registry()");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_5function_registry = {"function_registry", (PyCFunction)__pyx_pw_7pyarrow_8_compute_5function_registry, METH_NOARGS, __pyx_doc_7pyarrow_8_compute_4function_registry};
static PyObject *__pyx_pw_7pyarrow_8_compute_5function_registry(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("function_registry (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_4function_registry(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_4function_registry(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("function_registry", 0);

  /* "pyarrow/_compute.pyx":557
 * 
 * def function_registry():
 *     return _global_func_registry             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_7pyarrow_8_compute__global_func_registry);
  __pyx_r = ((PyObject *)__pyx_v_7pyarrow_8_compute__global_func_registry);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":556
 * 
 * 
 * def function_registry():             # <<<<<<<<<<<<<<
 *     return _global_func_registry
 * 
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":560
 * 
 * 
 * def get_function(name):             # <<<<<<<<<<<<<<
 *     """
 *     Get a function by name.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_7get_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_6get_function, "get_function(name)\n\nGet a function by name.\n\nThe function is looked up in the global registry\n(as returned by `function_registry()`).\n\nParameters\n----------\nname : str\n    The name of the function to lookup");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_7get_function = {"get_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_7get_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_6get_function};
static PyObject *__pyx_pw_7pyarrow_8_compute_7get_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_function (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 560, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 560, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_function", 0) < (0)) __PYX_ERR(0, 560, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_function", 1, 1, 1, i); __PYX_ERR(0, 560, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 560, __pyx_L3_error)
    }
    __pyx_v_name = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("get_function", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 560, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.get_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_6get_function(__pyx_self, __pyx_v_name);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_6get_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_function", 0);

  /* "pyarrow/_compute.pyx":572
 *         The name of the function to lookup
 *     """
 *     return _global_func_registry.get_function(name)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_7pyarrow_8_compute__global_func_registry);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_function, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 572, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":560
 * 
 * 
 * def get_function(name):             # <<<<<<<<<<<<<<
 *     """
 *     Get a function by name.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.get_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":575
 * 
 * 
 * def list_functions():             # <<<<<<<<<<<<<<
 *     """
 *     Return all function names in the global registry.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_9list_functions(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_8list_functions, "list_functions()\n\nReturn all function names in the global registry.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_9list_functions = {"list_functions", (PyCFunction)__pyx_pw_7pyarrow_8_compute_9list_functions, METH_NOARGS, __pyx_doc_7pyarrow_8_compute_8list_functions};
static PyObject *__pyx_pw_7pyarrow_8_compute_9list_functions(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("list_functions (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_8list_functions(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_8list_functions(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("list_functions", 0);

  /* "pyarrow/_compute.pyx":579
 *     Return all function names in the global registry.
 *     """
 *     return _global_func_registry.list_functions()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_v_7pyarrow_8_compute__global_func_registry);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_list_functions, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 579, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":575
 * 
 * 
 * def list_functions():             # <<<<<<<<<<<<<<
 *     """
 *     Return all function names in the global registry.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.list_functions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":582
 * 
 * 
 * def call_function(name, args, options=None, memory_pool=None, length=None):             # <<<<<<<<<<<<<<
 *     """
 *     Call a named function.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11call_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10call_function, "call_function(name, args, options=None, memory_pool=None, length=None)\n\nCall a named function.\n\nThe function is looked up in the global registry\n(as returned by `function_registry()`).\n\nParameters\n----------\nname : str\n    The name of the function to call.\nargs : list\n    The arguments to the function.\noptions : optional\n    options provided to the function.\nmemory_pool : MemoryPool, optional\n    memory pool to use for allocations during function execution.\nlength : int, optional\n    Batch size for execution, for nullary (no argument) functions. If not\n    passed, inferred from data.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11call_function = {"call_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11call_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10call_function};
static PyObject *__pyx_pw_7pyarrow_8_compute_11call_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_options = 0;
  PyObject *__pyx_v_memory_pool = 0;
  PyObject *__pyx_v_length = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("call_function (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name_2,&__pyx_mstate_global->__pyx_n_u_args,&__pyx_mstate_global->__pyx_n_u_options,&__pyx_mstate_global->__pyx_n_u_memory_pool,&__pyx_mstate_global->__pyx_n_u_length,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 582, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 582, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 582, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 582, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 582, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 582, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "call_function", 0) < (0)) __PYX_ERR(0, 582, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("call_function", 0, 2, 5, i); __PYX_ERR(0, 582, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 582, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 582, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 582, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 582, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 582, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_name = values[0];
    __pyx_v_args = values[1];
    __pyx_v_options = values[2];
    __pyx_v_memory_pool = values[3];
    __pyx_v_length = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("call_function", 0, 2, 5, __pyx_nargs); __PYX_ERR(0, 582, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.call_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10call_function(__pyx_self, __pyx_v_name, __pyx_v_args, __pyx_v_options, __pyx_v_memory_pool, __pyx_v_length);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_args, PyObject *__pyx_v_options, PyObject *__pyx_v_memory_pool, PyObject *__pyx_v_length) {
  PyObject *__pyx_v_func = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("call_function", 0);

  /* "pyarrow/_compute.pyx":603
 *         passed, inferred from data.
 *     """
 *     func = _global_func_registry.get_function(name)             # <<<<<<<<<<<<<<
 *     return func.call(args, options=options, memory_pool=memory_pool,
 *                      length=length)
*/
  __pyx_t_2 = ((PyObject *)__pyx_v_7pyarrow_8_compute__global_func_registry);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_function, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 603, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_func = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":604
 *     """
 *     func = _global_func_registry.get_function(name)
 *     return func.call(args, options=options, memory_pool=memory_pool,             # <<<<<<<<<<<<<<
 *                      length=length)
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_v_func;
  __Pyx_INCREF(__pyx_t_2);

  /* "pyarrow/_compute.pyx":605
 *     func = _global_func_registry.get_function(name)
 *     return func.call(args, options=options, memory_pool=memory_pool,
 *                      length=length)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 3 : 0)] = {__pyx_t_2, __pyx_v_args};
    __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 604, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_options, __pyx_v_options, __pyx_t_4, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 604, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_memory_pool, __pyx_v_memory_pool, __pyx_t_4, __pyx_callargs+2, 1) < (0)) __PYX_ERR(0, 604, __pyx_L1_error)
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_length, __pyx_v_length, __pyx_t_4, __pyx_callargs+2, 2) < (0)) __PYX_ERR(0, 604, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_call, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 604, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":582
 * 
 * 
 * def call_function(name, args, options=None, memory_pool=None, length=None):             # <<<<<<<<<<<<<<
 *     """
 *     Call a named function.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.call_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_func);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":611
 *     __slots__ = ()  # avoid mistakingly creating attributes
 * 
 *     cdef const CFunctionOptions* get_options(self) except NULL:             # <<<<<<<<<<<<<<
 *         return self.wrapped.get()
 * 
*/

static  arrow::compute::FunctionOptions const *__pyx_f_7pyarrow_8_compute_15FunctionOptions_get_options(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self) {
   arrow::compute::FunctionOptions const *__pyx_r;

  /* "pyarrow/_compute.pyx":612
 * 
 *     cdef const CFunctionOptions* get_options(self) except NULL:
 *         return self.wrapped.get()             # <<<<<<<<<<<<<<
 * 
 *     cdef void init(self, const shared_ptr[CFunctionOptions]& sp):
*/
  __pyx_r = __pyx_v_self->wrapped.get();
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":611
 *     __slots__ = ()  # avoid mistakingly creating attributes
 * 
 *     cdef const CFunctionOptions* get_options(self) except NULL:             # <<<<<<<<<<<<<<
 *         return self.wrapped.get()
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":614
 *         return self.wrapped.get()
 * 
 *     cdef void init(self, const shared_ptr[CFunctionOptions]& sp):             # <<<<<<<<<<<<<<
 *         self.wrapped = sp
 * 
*/

static void __pyx_f_7pyarrow_8_compute_15FunctionOptions_init(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self, std::shared_ptr< arrow::compute::FunctionOptions>  const &__pyx_v_sp) {

  /* "pyarrow/_compute.pyx":615
 * 
 *     cdef void init(self, const shared_ptr[CFunctionOptions]& sp):
 *         self.wrapped = sp             # <<<<<<<<<<<<<<
 * 
 *     cdef inline shared_ptr[CFunctionOptions] unwrap(self):
*/
  __pyx_v_self->wrapped = __pyx_v_sp;

  /* "pyarrow/_compute.pyx":614
 *         return self.wrapped.get()
 * 
 *     cdef void init(self, const shared_ptr[CFunctionOptions]& sp):             # <<<<<<<<<<<<<<
 *         self.wrapped = sp
 * 
*/

  /* function exit code */
}

/* "pyarrow/_compute.pyx":617
 *         self.wrapped = sp
 * 
 *     cdef inline shared_ptr[CFunctionOptions] unwrap(self):             # <<<<<<<<<<<<<<
 *         return self.wrapped
 * 
*/

static CYTHON_INLINE std::shared_ptr< arrow::compute::FunctionOptions>  __pyx_f_7pyarrow_8_compute_15FunctionOptions_unwrap(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self) {
  std::shared_ptr< arrow::compute::FunctionOptions>  __pyx_r;

  /* "pyarrow/_compute.pyx":618
 * 
 *     cdef inline shared_ptr[CFunctionOptions] unwrap(self):
 *         return self.wrapped             # <<<<<<<<<<<<<<
 * 
 *     def serialize(self):
*/
  __pyx_r = __pyx_v_self->wrapped;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":617
 *         self.wrapped = sp
 * 
 *     cdef inline shared_ptr[CFunctionOptions] unwrap(self):             # <<<<<<<<<<<<<<
 *         return self.wrapped
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":620
 *         return self.wrapped
 * 
 *     def serialize(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             CResult[shared_ptr[CBuffer]] res = self.get_options().Serialize()
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_1serialize(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15FunctionOptions_serialize, "FunctionOptions.serialize(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15FunctionOptions_1serialize = {"serialize", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15FunctionOptions_1serialize, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15FunctionOptions_serialize};
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_1serialize(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("serialize (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("serialize", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("serialize", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15FunctionOptions_serialize(((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_serialize(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self) {
  arrow::Result<std::shared_ptr< arrow::Buffer> >  __pyx_v_res;
  std::shared_ptr< arrow::Buffer>  __pyx_v_c_buf;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
   arrow::compute::FunctionOptions const *__pyx_t_1;
  std::shared_ptr< arrow::Buffer>  __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("serialize", 0);

  /* "pyarrow/_compute.pyx":622
 *     def serialize(self):
 *         cdef:
 *             CResult[shared_ptr[CBuffer]] res = self.get_options().Serialize()             # <<<<<<<<<<<<<<
 *             shared_ptr[CBuffer] c_buf = GetResultValue(res)
 *         return pyarrow_wrap_buffer(c_buf)
*/
  __pyx_t_1 = ((struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self->__pyx_vtab)->get_options(__pyx_v_self); if (unlikely(__pyx_t_1 == ((void *)NULL))) __PYX_ERR(0, 622, __pyx_L1_error)
  __pyx_v_res = __pyx_t_1->Serialize();

  /* "pyarrow/_compute.pyx":623
 *         cdef:
 *             CResult[shared_ptr[CBuffer]] res = self.get_options().Serialize()
 *             shared_ptr[CBuffer] c_buf = GetResultValue(res)             # <<<<<<<<<<<<<<
 *         return pyarrow_wrap_buffer(c_buf)
 * 
*/
  __pyx_t_2 = arrow::py::GetResultValue<std::shared_ptr< arrow::Buffer> >(__pyx_v_res); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 623, __pyx_L1_error)
  __pyx_v_c_buf = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_2);

  /* "pyarrow/_compute.pyx":624
 *             CResult[shared_ptr[CBuffer]] res = self.get_options().Serialize()
 *             shared_ptr[CBuffer] c_buf = GetResultValue(res)
 *         return pyarrow_wrap_buffer(c_buf)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __pyx_f_7pyarrow_3lib_pyarrow_wrap_buffer(__pyx_v_c_buf); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":620
 *         return self.wrapped
 * 
 *     def serialize(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             CResult[shared_ptr[CBuffer]] res = self.get_options().Serialize()
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.FunctionOptions.serialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":626
 *         return pyarrow_wrap_buffer(c_buf)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def deserialize(buf):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_3deserialize(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15FunctionOptions_2deserialize, "FunctionOptions.deserialize(buf)\n\nDeserialize options for a function.\n\nParameters\n----------\nbuf : Buffer\n    The buffer containing the data to deserialize.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15FunctionOptions_3deserialize = {"deserialize", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15FunctionOptions_3deserialize, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15FunctionOptions_2deserialize};
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_3deserialize(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_buf = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("deserialize (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_buf,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 626, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 626, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "deserialize", 0) < (0)) __PYX_ERR(0, 626, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("deserialize", 1, 1, 1, i); __PYX_ERR(0, 626, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 626, __pyx_L3_error)
    }
    __pyx_v_buf = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("deserialize", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 626, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.FunctionOptions.deserialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15FunctionOptions_2deserialize(__pyx_v_buf);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_2deserialize(PyObject *__pyx_v_buf) {
  std::shared_ptr< arrow::Buffer>  __pyx_v_c_buf;
  arrow::Result<std::unique_ptr< arrow::compute::FunctionOptions> >  __pyx_v_maybe_options;
  std::shared_ptr< arrow::compute::FunctionOptions>  __pyx_v_c_options;
  PyObject *__pyx_v_type_name = NULL;
  PyObject *__pyx_v_module = NULL;
  PyObject *__pyx_v_klass = NULL;
  PyObject *__pyx_v_options = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::shared_ptr< arrow::Buffer>  __pyx_t_1;
  std::unique_ptr< arrow::compute::FunctionOptions>  __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9[3];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("deserialize", 0);

  /* "pyarrow/_compute.pyx":637
 *         """
 *         cdef:
 *             shared_ptr[CBuffer] c_buf = pyarrow_unwrap_buffer(buf)             # <<<<<<<<<<<<<<
 *             CResult[unique_ptr[CFunctionOptions]] maybe_options = \
 *                 DeserializeFunctionOptions(deref(c_buf))
*/
  __pyx_t_1 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_buffer(__pyx_v_buf); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 637, __pyx_L1_error)
  __pyx_v_c_buf = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_1);

  /* "pyarrow/_compute.pyx":639
 *             shared_ptr[CBuffer] c_buf = pyarrow_unwrap_buffer(buf)
 *             CResult[unique_ptr[CFunctionOptions]] maybe_options = \
 *                 DeserializeFunctionOptions(deref(c_buf))             # <<<<<<<<<<<<<<
 *             shared_ptr[CFunctionOptions] c_options
 *         c_options = to_shared(GetResultValue(move(maybe_options)))
*/
  __pyx_v_maybe_options =  arrow::compute::internal::DeserializeFunctionOptions((*__pyx_v_c_buf));

  /* "pyarrow/_compute.pyx":641
 *                 DeserializeFunctionOptions(deref(c_buf))
 *             shared_ptr[CFunctionOptions] c_options
 *         c_options = to_shared(GetResultValue(move(maybe_options)))             # <<<<<<<<<<<<<<
 *         type_name = frombytes(c_options.get().options_type().type_name())
 *         module = globals()
*/
  __pyx_t_2 = arrow::py::GetResultValue<std::unique_ptr< arrow::compute::FunctionOptions> >(cython_std::move<arrow::Result<std::unique_ptr< arrow::compute::FunctionOptions> > >(__pyx_v_maybe_options)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 641, __pyx_L1_error)
  __pyx_v_c_options =  arrow::py::to_shared< arrow::compute::FunctionOptions>(__PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_2));

  /* "pyarrow/_compute.pyx":642
 *             shared_ptr[CFunctionOptions] c_options
 *         c_options = to_shared(GetResultValue(move(maybe_options)))
 *         type_name = frombytes(c_options.get().options_type().type_name())             # <<<<<<<<<<<<<<
 *         module = globals()
 *         if type_name not in module:
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_c_options.get()->options_type()->type_name()); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_7 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 642, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_v_type_name = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":643
 *         c_options = to_shared(GetResultValue(move(maybe_options)))
 *         type_name = frombytes(c_options.get().options_type().type_name())
 *         module = globals()             # <<<<<<<<<<<<<<
 *         if type_name not in module:
 *             raise ValueError(f'Cannot deserialize "{type_name}"')
*/
  __pyx_t_3 = __Pyx_Globals(); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 643, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_module = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":644
 *         type_name = frombytes(c_options.get().options_type().type_name())
 *         module = globals()
 *         if type_name not in module:             # <<<<<<<<<<<<<<
 *             raise ValueError(f'Cannot deserialize "{type_name}"')
 *         klass = module[type_name]
*/
  __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_v_type_name, __pyx_v_module, Py_NE)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 644, __pyx_L1_error)
  if (unlikely(__pyx_t_8)) {

    /* "pyarrow/_compute.pyx":645
 *         module = globals()
 *         if type_name not in module:
 *             raise ValueError(f'Cannot deserialize "{type_name}"')             # <<<<<<<<<<<<<<
 *         klass = module[type_name]
 *         options = klass.__new__(klass)
*/
    __pyx_t_5 = NULL;
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_type_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Cannot_deserialize;
    __pyx_t_9[1] = __pyx_t_6;
    __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u__5;
    __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_9, 3, 20 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6));
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 645, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 645, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":644
 *         type_name = frombytes(c_options.get().options_type().type_name())
 *         module = globals()
 *         if type_name not in module:             # <<<<<<<<<<<<<<
 *             raise ValueError(f'Cannot deserialize "{type_name}"')
 *         klass = module[type_name]
*/
  }

  /* "pyarrow/_compute.pyx":646
 *         if type_name not in module:
 *             raise ValueError(f'Cannot deserialize "{type_name}"')
 *         klass = module[type_name]             # <<<<<<<<<<<<<<
 *         options = klass.__new__(klass)
 *         (<FunctionOptions> options).init(c_options)
*/
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_module, __pyx_v_type_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_klass = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":647
 *             raise ValueError(f'Cannot deserialize "{type_name}"')
 *         klass = module[type_name]
 *         options = klass.__new__(klass)             # <<<<<<<<<<<<<<
 *         (<FunctionOptions> options).init(c_options)
 *         return options
*/
  __pyx_t_4 = __pyx_v_klass;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_7 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_klass};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 647, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_v_options = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":648
 *         klass = module[type_name]
 *         options = klass.__new__(klass)
 *         (<FunctionOptions> options).init(c_options)             # <<<<<<<<<<<<<<
 *         return options
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions *)((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_options)->__pyx_vtab)->init(((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_options), __pyx_v_c_options); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 648, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":649
 *         options = klass.__new__(klass)
 *         (<FunctionOptions> options).init(c_options)
 *         return options             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_options);
  __pyx_r = __pyx_v_options;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":626
 *         return pyarrow_wrap_buffer(c_buf)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def deserialize(buf):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pyarrow._compute.FunctionOptions.deserialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_type_name);
  __Pyx_XDECREF(__pyx_v_module);
  __Pyx_XDECREF(__pyx_v_klass);
  __Pyx_XDECREF(__pyx_v_options);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":651
 *         return options
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         type_name = self.__class__.__name__
 *         # Remove {} so we can use our own braces
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15FunctionOptions_4__repr__(((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_4__repr__(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self) {
  PyObject *__pyx_v_type_name = NULL;
  PyObject *__pyx_v_string_repr = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
   arrow::compute::FunctionOptions const *__pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7[4];
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "pyarrow/_compute.pyx":652
 * 
 *     def __repr__(self):
 *         type_name = self.__class__.__name__             # <<<<<<<<<<<<<<
 *         # Remove {} so we can use our own braces
 *         string_repr = frombytes(self.get_options().ToString())[1:-1]
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_type_name = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":654
 *         type_name = self.__class__.__name__
 *         # Remove {} so we can use our own braces
 *         string_repr = frombytes(self.get_options().ToString())[1:-1]             # <<<<<<<<<<<<<<
 *         return f"{type_name}({string_repr})"
 * 
*/
  __pyx_t_1 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = ((struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self->__pyx_vtab)->get_options(__pyx_v_self); if (unlikely(__pyx_t_4 == ((void *)NULL))) __PYX_ERR(0, 654, __pyx_L1_error)
  __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_t_4->ToString()); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_1);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_5};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 654, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_t_2, 1, -1L, NULL, NULL, &__pyx_mstate_global->__pyx_slice[0], 1, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_string_repr = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":655
 *         # Remove {} so we can use our own braces
 *         string_repr = frombytes(self.get_options().ToString())[1:-1]
 *         return f"{type_name}({string_repr})"             # <<<<<<<<<<<<<<
 * 
 *     def __eq__(self, FunctionOptions other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_v_type_name, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(__pyx_v_string_repr, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7[0] = __pyx_t_3;
  __pyx_t_7[1] = __pyx_mstate_global->__pyx_kp_u__6;
  __pyx_t_7[2] = __pyx_t_2;
  __pyx_t_7[3] = __pyx_mstate_global->__pyx_kp_u__7;
  __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_7, 4, __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":651
 *         return options
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         type_name = self.__class__.__name__
 *         # Remove {} so we can use our own braces
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pyarrow._compute.FunctionOptions.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_type_name);
  __Pyx_XDECREF(__pyx_v_string_repr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":657
 *         return f"{type_name}({string_repr})"
 * 
 *     def __eq__(self, FunctionOptions other):             # <<<<<<<<<<<<<<
 *         return self.get_options().Equals(deref(other.get_options()))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_7__eq__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__eq__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions, 1, "other", 0))) __PYX_ERR(0, 657, __pyx_L1_error)
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15FunctionOptions_6__eq__(((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self), ((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_other));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  goto __pyx_L5_cleaned_up;
  __pyx_L0:;
  __pyx_L5_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_6__eq__(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self, struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
   arrow::compute::FunctionOptions const *__pyx_t_1;
   arrow::compute::FunctionOptions const *__pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__eq__", 0);

  /* "pyarrow/_compute.pyx":658
 * 
 *     def __eq__(self, FunctionOptions other):
 *         return self.get_options().Equals(deref(other.get_options()))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self->__pyx_vtab)->get_options(__pyx_v_self); if (unlikely(__pyx_t_1 == ((void *)NULL))) __PYX_ERR(0, 658, __pyx_L1_error)
  __pyx_t_2 = ((struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions *)__pyx_v_other->__pyx_vtab)->get_options(__pyx_v_other); if (unlikely(__pyx_t_2 == ((void *)NULL))) __PYX_ERR(0, 658, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1->Equals((*__pyx_t_2))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":657
 *         return f"{type_name}({string_repr})"
 * 
 *     def __eq__(self, FunctionOptions other):             # <<<<<<<<<<<<<<
 *         return self.get_options().Equals(deref(other.get_options()))
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.FunctionOptions.__eq__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15FunctionOptions_8__reduce_cython__, "FunctionOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15FunctionOptions_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15FunctionOptions_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15FunctionOptions_8__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15FunctionOptions_8__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.FunctionOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15FunctionOptions_10__setstate_cython__, "FunctionOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15FunctionOptions_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15FunctionOptions_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15FunctionOptions_10__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15FunctionOptions_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.FunctionOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15FunctionOptions_10__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15FunctionOptions_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.FunctionOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":661
 * 
 * 
 * def _raise_invalid_function_option(value, description, *,             # <<<<<<<<<<<<<<
 *                                    exception_class=ValueError):
 *     raise exception_class(f"\"{value}\" is not a valid {description}")
*/

static PyObject *__pyx_pf_7pyarrow_8_compute_34__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_exception_class, __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0) < (0)) __PYX_ERR(0, 661, __pyx_L1_error)
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, Py_None) != (0)) __PYX_ERR(0, 661, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(0, 661, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_raise_invalid_function_option(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_raise_invalid_function_option, "_raise_invalid_function_option(value, description, *, exception_class=ValueError)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_raise_invalid_function_option = {"_raise_invalid_function_option", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_raise_invalid_function_option, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_raise_invalid_function_option};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_raise_invalid_function_option(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_description = 0;
  PyObject *__pyx_v_exception_class = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_raise_invalid_function_option (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_value,&__pyx_mstate_global->__pyx_n_u_description,&__pyx_mstate_global->__pyx_n_u_exception_class,0};
    struct __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self);
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 661, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 661, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 661, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_raise_invalid_function_option", 0) < (0)) __PYX_ERR(0, 661, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_raise_invalid_function_option", 1, 2, 2, i); __PYX_ERR(0, 661, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 661, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 661, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
    }
    __pyx_v_value = values[0];
    __pyx_v_description = values[1];
    __pyx_v_exception_class = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_raise_invalid_function_option", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 661, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._raise_invalid_function_option", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_raise_invalid_function_option(__pyx_self, __pyx_v_value, __pyx_v_description, __pyx_v_exception_class);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_raise_invalid_function_option(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value, PyObject *__pyx_v_description, PyObject *__pyx_v_exception_class) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6[4];
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_raise_invalid_function_option", 0);

  /* "pyarrow/_compute.pyx":663
 * def _raise_invalid_function_option(value, description, *,
 *                                    exception_class=ValueError):
 *     raise exception_class(f"\"{value}\" is not a valid {description}")             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_INCREF(__pyx_v_exception_class);
  __pyx_t_3 = __pyx_v_exception_class; 
  __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_value, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_description, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6[0] = __pyx_mstate_global->__pyx_kp_u__5;
  __pyx_t_6[1] = __pyx_t_4;
  __pyx_t_6[2] = __pyx_mstate_global->__pyx_kp_u_is_not_a_valid;
  __pyx_t_6[3] = __pyx_t_5;
  __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_6, 4, 1 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 17 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_4) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
  if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_8 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_8 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_7};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(0, 663, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":661
 * 
 * 
 * def _raise_invalid_function_option(value, description, *,             # <<<<<<<<<<<<<<
 *                                    exception_class=ValueError):
 *     raise exception_class(f"\"{value}\" is not a valid {description}")
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pyarrow._compute._raise_invalid_function_option", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":677
 *     cdef CCastOptions* options
 * 
 *     cdef void init(self, const shared_ptr[CFunctionOptions]& sp):             # <<<<<<<<<<<<<<
 *         FunctionOptions.init(self, sp)
 *         self.options = <CCastOptions*> self.wrapped.get()
*/

static void __pyx_f_7pyarrow_8_compute_12_CastOptions_init(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, std::shared_ptr< arrow::compute::FunctionOptions>  const &__pyx_v_sp) {
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pyarrow/_compute.pyx":678
 * 
 *     cdef void init(self, const shared_ptr[CFunctionOptions]& sp):
 *         FunctionOptions.init(self, sp)             # <<<<<<<<<<<<<<
 *         self.options = <CCastOptions*> self.wrapped.get()
 * 
*/
  __pyx_f_7pyarrow_8_compute_15FunctionOptions_init(((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self), __pyx_v_sp); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 678, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":679
 *     cdef void init(self, const shared_ptr[CFunctionOptions]& sp):
 *         FunctionOptions.init(self, sp)
 *         self.options = <CCastOptions*> self.wrapped.get()             # <<<<<<<<<<<<<<
 * 
 *     def _set_options(self, DataType target_type, allow_int_overflow,
*/
  __pyx_v_self->options = (( arrow::compute::CastOptions *)__pyx_v_self->__pyx_base.wrapped.get());

  /* "pyarrow/_compute.pyx":677
 *     cdef CCastOptions* options
 * 
 *     cdef void init(self, const shared_ptr[CFunctionOptions]& sp):             # <<<<<<<<<<<<<<
 *         FunctionOptions.init(self, sp)
 *         self.options = <CCastOptions*> self.wrapped.get()
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "pyarrow/_compute.pyx":681
 *         self.options = <CCastOptions*> self.wrapped.get()
 * 
 *     def _set_options(self, DataType target_type, allow_int_overflow,             # <<<<<<<<<<<<<<
 *                      allow_time_truncate, allow_time_overflow,
 *                      allow_decimal_truncate, allow_float_truncate,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_CastOptions__set_options, "_CastOptions._set_options(self, DataType target_type, allow_int_overflow, allow_time_truncate, allow_time_overflow, allow_decimal_truncate, allow_float_truncate, allow_invalid_utf8)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_CastOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_7pyarrow_3lib_DataType *__pyx_v_target_type = 0;
  PyObject *__pyx_v_allow_int_overflow = 0;
  PyObject *__pyx_v_allow_time_truncate = 0;
  PyObject *__pyx_v_allow_time_overflow = 0;
  PyObject *__pyx_v_allow_decimal_truncate = 0;
  PyObject *__pyx_v_allow_float_truncate = 0;
  PyObject *__pyx_v_allow_invalid_utf8 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[7] = {0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_target_type,&__pyx_mstate_global->__pyx_n_u_allow_int_overflow,&__pyx_mstate_global->__pyx_n_u_allow_time_truncate,&__pyx_mstate_global->__pyx_n_u_allow_time_overflow,&__pyx_mstate_global->__pyx_n_u_allow_decimal_truncate,&__pyx_mstate_global->__pyx_n_u_allow_float_truncate,&__pyx_mstate_global->__pyx_n_u_allow_invalid_utf8,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 681, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  7:
        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 681, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 681, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 681, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 681, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 681, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 681, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 681, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 681, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 7; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 7, 7, i); __PYX_ERR(0, 681, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 7)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 681, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 681, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 681, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 681, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 681, __pyx_L3_error)
      values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 681, __pyx_L3_error)
      values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 681, __pyx_L3_error)
    }
    __pyx_v_target_type = ((struct __pyx_obj_7pyarrow_3lib_DataType *)values[0]);
    __pyx_v_allow_int_overflow = values[1];
    __pyx_v_allow_time_truncate = values[2];
    __pyx_v_allow_time_overflow = values[3];
    __pyx_v_allow_decimal_truncate = values[4];
    __pyx_v_allow_float_truncate = values[5];
    __pyx_v_allow_invalid_utf8 = values[6];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 7, 7, __pyx_nargs); __PYX_ERR(0, 681, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._CastOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_target_type), __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_DataType, 1, "target_type", 0))) __PYX_ERR(0, 681, __pyx_L1_error)
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self), __pyx_v_target_type, __pyx_v_allow_int_overflow, __pyx_v_allow_time_truncate, __pyx_v_allow_time_overflow, __pyx_v_allow_decimal_truncate, __pyx_v_allow_float_truncate, __pyx_v_allow_invalid_utf8);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, struct __pyx_obj_7pyarrow_3lib_DataType *__pyx_v_target_type, PyObject *__pyx_v_allow_int_overflow, PyObject *__pyx_v_allow_time_truncate, PyObject *__pyx_v_allow_time_overflow, PyObject *__pyx_v_allow_decimal_truncate, PyObject *__pyx_v_allow_float_truncate, PyObject *__pyx_v_allow_invalid_utf8) {
  std::shared_ptr< arrow::compute::CastOptions>  __pyx_v_wrapped;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::shared_ptr< arrow::compute::CastOptions>  __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":686
 *                      allow_invalid_utf8):
 *         cdef:
 *             shared_ptr[CCastOptions] wrapped = make_shared[CCastOptions]()             # <<<<<<<<<<<<<<
 *         self.init(<shared_ptr[CFunctionOptions]> wrapped)
 *         self._set_type(target_type)
*/
  try {
    __pyx_t_1 = std::make_shared< arrow::compute::CastOptions>();
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 686, __pyx_L1_error)
  }
  __pyx_v_wrapped = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_1);

  /* "pyarrow/_compute.pyx":687
 *         cdef:
 *             shared_ptr[CCastOptions] wrapped = make_shared[CCastOptions]()
 *         self.init(<shared_ptr[CFunctionOptions]> wrapped)             # <<<<<<<<<<<<<<
 *         self._set_type(target_type)
 *         if allow_int_overflow is not None:
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute__CastOptions *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.init(((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self), ((std::shared_ptr< arrow::compute::FunctionOptions> )__pyx_v_wrapped)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 687, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":688
 *             shared_ptr[CCastOptions] wrapped = make_shared[CCastOptions]()
 *         self.init(<shared_ptr[CFunctionOptions]> wrapped)
 *         self._set_type(target_type)             # <<<<<<<<<<<<<<
 *         if allow_int_overflow is not None:
 *             self.allow_int_overflow = allow_int_overflow
*/
  __pyx_t_3 = ((PyObject *)__pyx_v_self);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)__pyx_v_target_type)};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_type, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 688, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":689
 *         self.init(<shared_ptr[CFunctionOptions]> wrapped)
 *         self._set_type(target_type)
 *         if allow_int_overflow is not None:             # <<<<<<<<<<<<<<
 *             self.allow_int_overflow = allow_int_overflow
 *         if allow_time_truncate is not None:
*/
  __pyx_t_5 = (__pyx_v_allow_int_overflow != Py_None);
  if (__pyx_t_5) {

    /* "pyarrow/_compute.pyx":690
 *         self._set_type(target_type)
 *         if allow_int_overflow is not None:
 *             self.allow_int_overflow = allow_int_overflow             # <<<<<<<<<<<<<<
 *         if allow_time_truncate is not None:
 *             self.allow_time_truncate = allow_time_truncate
*/
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_allow_int_overflow, __pyx_v_allow_int_overflow) < (0)) __PYX_ERR(0, 690, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":689
 *         self.init(<shared_ptr[CFunctionOptions]> wrapped)
 *         self._set_type(target_type)
 *         if allow_int_overflow is not None:             # <<<<<<<<<<<<<<
 *             self.allow_int_overflow = allow_int_overflow
 *         if allow_time_truncate is not None:
*/
  }

  /* "pyarrow/_compute.pyx":691
 *         if allow_int_overflow is not None:
 *             self.allow_int_overflow = allow_int_overflow
 *         if allow_time_truncate is not None:             # <<<<<<<<<<<<<<
 *             self.allow_time_truncate = allow_time_truncate
 *         if allow_time_overflow is not None:
*/
  __pyx_t_5 = (__pyx_v_allow_time_truncate != Py_None);
  if (__pyx_t_5) {

    /* "pyarrow/_compute.pyx":692
 *             self.allow_int_overflow = allow_int_overflow
 *         if allow_time_truncate is not None:
 *             self.allow_time_truncate = allow_time_truncate             # <<<<<<<<<<<<<<
 *         if allow_time_overflow is not None:
 *             self.allow_time_overflow = allow_time_overflow
*/
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_allow_time_truncate, __pyx_v_allow_time_truncate) < (0)) __PYX_ERR(0, 692, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":691
 *         if allow_int_overflow is not None:
 *             self.allow_int_overflow = allow_int_overflow
 *         if allow_time_truncate is not None:             # <<<<<<<<<<<<<<
 *             self.allow_time_truncate = allow_time_truncate
 *         if allow_time_overflow is not None:
*/
  }

  /* "pyarrow/_compute.pyx":693
 *         if allow_time_truncate is not None:
 *             self.allow_time_truncate = allow_time_truncate
 *         if allow_time_overflow is not None:             # <<<<<<<<<<<<<<
 *             self.allow_time_overflow = allow_time_overflow
 *         if allow_decimal_truncate is not None:
*/
  __pyx_t_5 = (__pyx_v_allow_time_overflow != Py_None);
  if (__pyx_t_5) {

    /* "pyarrow/_compute.pyx":694
 *             self.allow_time_truncate = allow_time_truncate
 *         if allow_time_overflow is not None:
 *             self.allow_time_overflow = allow_time_overflow             # <<<<<<<<<<<<<<
 *         if allow_decimal_truncate is not None:
 *             self.allow_decimal_truncate = allow_decimal_truncate
*/
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_allow_time_overflow, __pyx_v_allow_time_overflow) < (0)) __PYX_ERR(0, 694, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":693
 *         if allow_time_truncate is not None:
 *             self.allow_time_truncate = allow_time_truncate
 *         if allow_time_overflow is not None:             # <<<<<<<<<<<<<<
 *             self.allow_time_overflow = allow_time_overflow
 *         if allow_decimal_truncate is not None:
*/
  }

  /* "pyarrow/_compute.pyx":695
 *         if allow_time_overflow is not None:
 *             self.allow_time_overflow = allow_time_overflow
 *         if allow_decimal_truncate is not None:             # <<<<<<<<<<<<<<
 *             self.allow_decimal_truncate = allow_decimal_truncate
 *         if allow_float_truncate is not None:
*/
  __pyx_t_5 = (__pyx_v_allow_decimal_truncate != Py_None);
  if (__pyx_t_5) {

    /* "pyarrow/_compute.pyx":696
 *             self.allow_time_overflow = allow_time_overflow
 *         if allow_decimal_truncate is not None:
 *             self.allow_decimal_truncate = allow_decimal_truncate             # <<<<<<<<<<<<<<
 *         if allow_float_truncate is not None:
 *             self.allow_float_truncate = allow_float_truncate
*/
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_allow_decimal_truncate, __pyx_v_allow_decimal_truncate) < (0)) __PYX_ERR(0, 696, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":695
 *         if allow_time_overflow is not None:
 *             self.allow_time_overflow = allow_time_overflow
 *         if allow_decimal_truncate is not None:             # <<<<<<<<<<<<<<
 *             self.allow_decimal_truncate = allow_decimal_truncate
 *         if allow_float_truncate is not None:
*/
  }

  /* "pyarrow/_compute.pyx":697
 *         if allow_decimal_truncate is not None:
 *             self.allow_decimal_truncate = allow_decimal_truncate
 *         if allow_float_truncate is not None:             # <<<<<<<<<<<<<<
 *             self.allow_float_truncate = allow_float_truncate
 *         if allow_invalid_utf8 is not None:
*/
  __pyx_t_5 = (__pyx_v_allow_float_truncate != Py_None);
  if (__pyx_t_5) {

    /* "pyarrow/_compute.pyx":698
 *             self.allow_decimal_truncate = allow_decimal_truncate
 *         if allow_float_truncate is not None:
 *             self.allow_float_truncate = allow_float_truncate             # <<<<<<<<<<<<<<
 *         if allow_invalid_utf8 is not None:
 *             self.allow_invalid_utf8 = allow_invalid_utf8
*/
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_allow_float_truncate, __pyx_v_allow_float_truncate) < (0)) __PYX_ERR(0, 698, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":697
 *         if allow_decimal_truncate is not None:
 *             self.allow_decimal_truncate = allow_decimal_truncate
 *         if allow_float_truncate is not None:             # <<<<<<<<<<<<<<
 *             self.allow_float_truncate = allow_float_truncate
 *         if allow_invalid_utf8 is not None:
*/
  }

  /* "pyarrow/_compute.pyx":699
 *         if allow_float_truncate is not None:
 *             self.allow_float_truncate = allow_float_truncate
 *         if allow_invalid_utf8 is not None:             # <<<<<<<<<<<<<<
 *             self.allow_invalid_utf8 = allow_invalid_utf8
 * 
*/
  __pyx_t_5 = (__pyx_v_allow_invalid_utf8 != Py_None);
  if (__pyx_t_5) {

    /* "pyarrow/_compute.pyx":700
 *             self.allow_float_truncate = allow_float_truncate
 *         if allow_invalid_utf8 is not None:
 *             self.allow_invalid_utf8 = allow_invalid_utf8             # <<<<<<<<<<<<<<
 * 
 *     def _set_type(self, target_type=None):
*/
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_allow_invalid_utf8, __pyx_v_allow_invalid_utf8) < (0)) __PYX_ERR(0, 700, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":699
 *         if allow_float_truncate is not None:
 *             self.allow_float_truncate = allow_float_truncate
 *         if allow_invalid_utf8 is not None:             # <<<<<<<<<<<<<<
 *             self.allow_invalid_utf8 = allow_invalid_utf8
 * 
*/
  }

  /* "pyarrow/_compute.pyx":681
 *         self.options = <CCastOptions*> self.wrapped.get()
 * 
 *     def _set_options(self, DataType target_type, allow_int_overflow,             # <<<<<<<<<<<<<<
 *                      allow_time_truncate, allow_time_overflow,
 *                      allow_decimal_truncate, allow_float_truncate,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._CastOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":702
 *             self.allow_invalid_utf8 = allow_invalid_utf8
 * 
 *     def _set_type(self, target_type=None):             # <<<<<<<<<<<<<<
 *         if target_type is not None:
 *             deref(self.options).to_type = \
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_3_set_type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_CastOptions_2_set_type, "_CastOptions._set_type(self, target_type=None)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_CastOptions_3_set_type = {"_set_type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_3_set_type, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_2_set_type};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_3_set_type(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_target_type = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_type (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_target_type,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 702, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 702, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_type", 0) < (0)) __PYX_ERR(0, 702, __pyx_L3_error)
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    } else {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 702, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_target_type = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_type", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 702, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._CastOptions._set_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_2_set_type(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self), __pyx_v_target_type);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_2_set_type(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, PyObject *__pyx_v_target_type) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  std::shared_ptr< arrow::DataType>  __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_type", 0);

  /* "pyarrow/_compute.pyx":703
 * 
 *     def _set_type(self, target_type=None):
 *         if target_type is not None:             # <<<<<<<<<<<<<<
 *             deref(self.options).to_type = \
 *                 (<DataType> ensure_type(target_type)).sp_type
*/
  __pyx_t_1 = (__pyx_v_target_type != Py_None);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":705
 *         if target_type is not None:
 *             deref(self.options).to_type = \
 *                 (<DataType> ensure_type(target_type)).sp_type             # <<<<<<<<<<<<<<
 * 
 *     def _set_safe(self):
*/
    __pyx_t_2 = ((PyObject *)__pyx_f_7pyarrow_3lib_ensure_type(__pyx_v_target_type, 0, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 705, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = ((struct __pyx_obj_7pyarrow_3lib_DataType *)__pyx_t_2)->sp_type;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "pyarrow/_compute.pyx":704
 *     def _set_type(self, target_type=None):
 *         if target_type is not None:
 *             deref(self.options).to_type = \             # <<<<<<<<<<<<<<
 *                 (<DataType> ensure_type(target_type)).sp_type
 * 
*/
    (*__pyx_v_self->options).to_type = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_3);

    /* "pyarrow/_compute.pyx":703
 * 
 *     def _set_type(self, target_type=None):
 *         if target_type is not None:             # <<<<<<<<<<<<<<
 *             deref(self.options).to_type = \
 *                 (<DataType> ensure_type(target_type)).sp_type
*/
  }

  /* "pyarrow/_compute.pyx":702
 *             self.allow_invalid_utf8 = allow_invalid_utf8
 * 
 *     def _set_type(self, target_type=None):             # <<<<<<<<<<<<<<
 *         if target_type is not None:
 *             deref(self.options).to_type = \
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute._CastOptions._set_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":707
 *                 (<DataType> ensure_type(target_type)).sp_type
 * 
 *     def _set_safe(self):             # <<<<<<<<<<<<<<
 *         self.init(shared_ptr[CFunctionOptions](
 *             new CCastOptions(CCastOptions.Safe())))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_5_set_safe(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_CastOptions_4_set_safe, "_CastOptions._set_safe(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_CastOptions_5_set_safe = {"_set_safe", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_5_set_safe, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_4_set_safe};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_5_set_safe(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_safe (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("_set_safe", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("_set_safe", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_4_set_safe(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_4_set_safe(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_safe", 0);

  /* "pyarrow/_compute.pyx":708
 * 
 *     def _set_safe(self):
 *         self.init(shared_ptr[CFunctionOptions](             # <<<<<<<<<<<<<<
 *             new CCastOptions(CCastOptions.Safe())))
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute__CastOptions *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.init(((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self), std::shared_ptr< arrow::compute::FunctionOptions> (new  arrow::compute::CastOptions( arrow::compute::CastOptions::Safe()))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 708, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":707
 *                 (<DataType> ensure_type(target_type)).sp_type
 * 
 *     def _set_safe(self):             # <<<<<<<<<<<<<<
 *         self.init(shared_ptr[CFunctionOptions](
 *             new CCastOptions(CCastOptions.Safe())))
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._CastOptions._set_safe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":711
 *             new CCastOptions(CCastOptions.Safe())))
 * 
 *     def _set_unsafe(self):             # <<<<<<<<<<<<<<
 *         self.init(shared_ptr[CFunctionOptions](
 *             new CCastOptions(CCastOptions.Unsafe())))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_7_set_unsafe(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_CastOptions_6_set_unsafe, "_CastOptions._set_unsafe(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_CastOptions_7_set_unsafe = {"_set_unsafe", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_7_set_unsafe, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_6_set_unsafe};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_7_set_unsafe(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_unsafe (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("_set_unsafe", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("_set_unsafe", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_6_set_unsafe(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_6_set_unsafe(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_unsafe", 0);

  /* "pyarrow/_compute.pyx":712
 * 
 *     def _set_unsafe(self):
 *         self.init(shared_ptr[CFunctionOptions](             # <<<<<<<<<<<<<<
 *             new CCastOptions(CCastOptions.Unsafe())))
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute__CastOptions *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.init(((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)__pyx_v_self), std::shared_ptr< arrow::compute::FunctionOptions> (new  arrow::compute::CastOptions( arrow::compute::CastOptions::Unsafe()))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 712, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":711
 *             new CCastOptions(CCastOptions.Safe())))
 * 
 *     def _set_unsafe(self):             # <<<<<<<<<<<<<<
 *         self.init(shared_ptr[CFunctionOptions](
 *             new CCastOptions(CCastOptions.Unsafe())))
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._CastOptions._set_unsafe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":715
 *             new CCastOptions(CCastOptions.Unsafe())))
 * 
 *     def is_safe(self):             # <<<<<<<<<<<<<<
 *         return not (deref(self.options).allow_int_overflow or
 *                     deref(self.options).allow_time_truncate or
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_9is_safe(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_CastOptions_8is_safe, "_CastOptions.is_safe(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_CastOptions_9is_safe = {"is_safe", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_9is_safe, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_8is_safe};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_9is_safe(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_safe (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("is_safe", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("is_safe", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_8is_safe(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_8is_safe(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_safe", 0);

  /* "pyarrow/_compute.pyx":716
 * 
 *     def is_safe(self):
 *         return not (deref(self.options).allow_int_overflow or             # <<<<<<<<<<<<<<
 *                     deref(self.options).allow_time_truncate or
 *                     deref(self.options).allow_time_overflow or
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((*__pyx_v_self->options).allow_int_overflow != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }

  /* "pyarrow/_compute.pyx":717
 *     def is_safe(self):
 *         return not (deref(self.options).allow_int_overflow or
 *                     deref(self.options).allow_time_truncate or             # <<<<<<<<<<<<<<
 *                     deref(self.options).allow_time_overflow or
 *                     deref(self.options).allow_decimal_truncate or
*/
  __pyx_t_2 = ((*__pyx_v_self->options).allow_time_truncate != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }

  /* "pyarrow/_compute.pyx":718
 *         return not (deref(self.options).allow_int_overflow or
 *                     deref(self.options).allow_time_truncate or
 *                     deref(self.options).allow_time_overflow or             # <<<<<<<<<<<<<<
 *                     deref(self.options).allow_decimal_truncate or
 *                     deref(self.options).allow_float_truncate or
*/
  __pyx_t_2 = ((*__pyx_v_self->options).allow_time_overflow != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }

  /* "pyarrow/_compute.pyx":719
 *                     deref(self.options).allow_time_truncate or
 *                     deref(self.options).allow_time_overflow or
 *                     deref(self.options).allow_decimal_truncate or             # <<<<<<<<<<<<<<
 *                     deref(self.options).allow_float_truncate or
 *                     deref(self.options).allow_invalid_utf8)
*/
  __pyx_t_2 = ((*__pyx_v_self->options).allow_decimal_truncate != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }

  /* "pyarrow/_compute.pyx":720
 *                     deref(self.options).allow_time_overflow or
 *                     deref(self.options).allow_decimal_truncate or
 *                     deref(self.options).allow_float_truncate or             # <<<<<<<<<<<<<<
 *                     deref(self.options).allow_invalid_utf8)
 * 
*/
  __pyx_t_2 = ((*__pyx_v_self->options).allow_float_truncate != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }

  /* "pyarrow/_compute.pyx":721
 *                     deref(self.options).allow_decimal_truncate or
 *                     deref(self.options).allow_float_truncate or
 *                     deref(self.options).allow_invalid_utf8)             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __pyx_t_2 = ((*__pyx_v_self->options).allow_invalid_utf8 != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L3_bool_binop_done:;

  /* "pyarrow/_compute.pyx":716
 * 
 *     def is_safe(self):
 *         return not (deref(self.options).allow_int_overflow or             # <<<<<<<<<<<<<<
 *                     deref(self.options).allow_time_truncate or
 *                     deref(self.options).allow_time_overflow or
*/
  __pyx_t_3 = __Pyx_PyBool_FromLong((!__pyx_t_1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":715
 *             new CCastOptions(CCastOptions.Unsafe())))
 * 
 *     def is_safe(self):             # <<<<<<<<<<<<<<
 *         return not (deref(self.options).allow_int_overflow or
 *                     deref(self.options).allow_time_truncate or
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.is_safe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":723
 *                     deref(self.options).allow_invalid_utf8)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_int_overflow(self):
 *         return deref(self.options).allow_int_overflow
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow___get__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":725
 *     @property
 *     def allow_int_overflow(self):
 *         return deref(self.options).allow_int_overflow             # <<<<<<<<<<<<<<
 * 
 *     @allow_int_overflow.setter
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong((*__pyx_v_self->options).allow_int_overflow); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 725, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":723
 *                     deref(self.options).allow_invalid_utf8)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_int_overflow(self):
 *         return deref(self.options).allow_int_overflow
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_int_overflow.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":727
 *         return deref(self.options).allow_int_overflow
 * 
 *     @allow_int_overflow.setter             # <<<<<<<<<<<<<<
 *     def allow_int_overflow(self, c_bool flag):
 *         deref(self.options).allow_int_overflow = flag
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag) {
  bool __pyx_v_flag;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_flag); {
    __pyx_v_flag = __Pyx_PyObject_IsTrue(__pyx_arg_flag); if (unlikely((__pyx_v_flag == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 728, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_int_overflow.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow_2__set__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self), ((bool)__pyx_v_flag));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag) {
  int __pyx_r;

  /* "pyarrow/_compute.pyx":729
 *     @allow_int_overflow.setter
 *     def allow_int_overflow(self, c_bool flag):
 *         deref(self.options).allow_int_overflow = flag             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  (*__pyx_v_self->options).allow_int_overflow = __pyx_v_flag;

  /* "pyarrow/_compute.pyx":727
 *         return deref(self.options).allow_int_overflow
 * 
 *     @allow_int_overflow.setter             # <<<<<<<<<<<<<<
 *     def allow_int_overflow(self, c_bool flag):
 *         deref(self.options).allow_int_overflow = flag
*/

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":731
 *         deref(self.options).allow_int_overflow = flag
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_time_truncate(self):
 *         return deref(self.options).allow_time_truncate
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate___get__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":733
 *     @property
 *     def allow_time_truncate(self):
 *         return deref(self.options).allow_time_truncate             # <<<<<<<<<<<<<<
 * 
 *     @allow_time_truncate.setter
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong((*__pyx_v_self->options).allow_time_truncate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":731
 *         deref(self.options).allow_int_overflow = flag
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_time_truncate(self):
 *         return deref(self.options).allow_time_truncate
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_time_truncate.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":735
 *         return deref(self.options).allow_time_truncate
 * 
 *     @allow_time_truncate.setter             # <<<<<<<<<<<<<<
 *     def allow_time_truncate(self, c_bool flag):
 *         deref(self.options).allow_time_truncate = flag
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag) {
  bool __pyx_v_flag;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_flag); {
    __pyx_v_flag = __Pyx_PyObject_IsTrue(__pyx_arg_flag); if (unlikely((__pyx_v_flag == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_time_truncate.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate_2__set__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self), ((bool)__pyx_v_flag));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag) {
  int __pyx_r;

  /* "pyarrow/_compute.pyx":737
 *     @allow_time_truncate.setter
 *     def allow_time_truncate(self, c_bool flag):
 *         deref(self.options).allow_time_truncate = flag             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  (*__pyx_v_self->options).allow_time_truncate = __pyx_v_flag;

  /* "pyarrow/_compute.pyx":735
 *         return deref(self.options).allow_time_truncate
 * 
 *     @allow_time_truncate.setter             # <<<<<<<<<<<<<<
 *     def allow_time_truncate(self, c_bool flag):
 *         deref(self.options).allow_time_truncate = flag
*/

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":739
 *         deref(self.options).allow_time_truncate = flag
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_time_overflow(self):
 *         return deref(self.options).allow_time_overflow
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow___get__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":741
 *     @property
 *     def allow_time_overflow(self):
 *         return deref(self.options).allow_time_overflow             # <<<<<<<<<<<<<<
 * 
 *     @allow_time_overflow.setter
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong((*__pyx_v_self->options).allow_time_overflow); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":739
 *         deref(self.options).allow_time_truncate = flag
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_time_overflow(self):
 *         return deref(self.options).allow_time_overflow
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_time_overflow.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":743
 *         return deref(self.options).allow_time_overflow
 * 
 *     @allow_time_overflow.setter             # <<<<<<<<<<<<<<
 *     def allow_time_overflow(self, c_bool flag):
 *         deref(self.options).allow_time_overflow = flag
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag) {
  bool __pyx_v_flag;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_flag); {
    __pyx_v_flag = __Pyx_PyObject_IsTrue(__pyx_arg_flag); if (unlikely((__pyx_v_flag == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 744, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_time_overflow.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow_2__set__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self), ((bool)__pyx_v_flag));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag) {
  int __pyx_r;

  /* "pyarrow/_compute.pyx":745
 *     @allow_time_overflow.setter
 *     def allow_time_overflow(self, c_bool flag):
 *         deref(self.options).allow_time_overflow = flag             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  (*__pyx_v_self->options).allow_time_overflow = __pyx_v_flag;

  /* "pyarrow/_compute.pyx":743
 *         return deref(self.options).allow_time_overflow
 * 
 *     @allow_time_overflow.setter             # <<<<<<<<<<<<<<
 *     def allow_time_overflow(self, c_bool flag):
 *         deref(self.options).allow_time_overflow = flag
*/

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":747
 *         deref(self.options).allow_time_overflow = flag
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_decimal_truncate(self):
 *         return deref(self.options).allow_decimal_truncate
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate___get__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":749
 *     @property
 *     def allow_decimal_truncate(self):
 *         return deref(self.options).allow_decimal_truncate             # <<<<<<<<<<<<<<
 * 
 *     @allow_decimal_truncate.setter
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong((*__pyx_v_self->options).allow_decimal_truncate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":747
 *         deref(self.options).allow_time_overflow = flag
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_decimal_truncate(self):
 *         return deref(self.options).allow_decimal_truncate
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_decimal_truncate.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":751
 *         return deref(self.options).allow_decimal_truncate
 * 
 *     @allow_decimal_truncate.setter             # <<<<<<<<<<<<<<
 *     def allow_decimal_truncate(self, c_bool flag):
 *         deref(self.options).allow_decimal_truncate = flag
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag) {
  bool __pyx_v_flag;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_flag); {
    __pyx_v_flag = __Pyx_PyObject_IsTrue(__pyx_arg_flag); if (unlikely((__pyx_v_flag == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 752, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_decimal_truncate.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate_2__set__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self), ((bool)__pyx_v_flag));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag) {
  int __pyx_r;

  /* "pyarrow/_compute.pyx":753
 *     @allow_decimal_truncate.setter
 *     def allow_decimal_truncate(self, c_bool flag):
 *         deref(self.options).allow_decimal_truncate = flag             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  (*__pyx_v_self->options).allow_decimal_truncate = __pyx_v_flag;

  /* "pyarrow/_compute.pyx":751
 *         return deref(self.options).allow_decimal_truncate
 * 
 *     @allow_decimal_truncate.setter             # <<<<<<<<<<<<<<
 *     def allow_decimal_truncate(self, c_bool flag):
 *         deref(self.options).allow_decimal_truncate = flag
*/

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":755
 *         deref(self.options).allow_decimal_truncate = flag
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_float_truncate(self):
 *         return deref(self.options).allow_float_truncate
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate___get__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":757
 *     @property
 *     def allow_float_truncate(self):
 *         return deref(self.options).allow_float_truncate             # <<<<<<<<<<<<<<
 * 
 *     @allow_float_truncate.setter
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong((*__pyx_v_self->options).allow_float_truncate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":755
 *         deref(self.options).allow_decimal_truncate = flag
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_float_truncate(self):
 *         return deref(self.options).allow_float_truncate
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_float_truncate.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":759
 *         return deref(self.options).allow_float_truncate
 * 
 *     @allow_float_truncate.setter             # <<<<<<<<<<<<<<
 *     def allow_float_truncate(self, c_bool flag):
 *         deref(self.options).allow_float_truncate = flag
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag) {
  bool __pyx_v_flag;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_flag); {
    __pyx_v_flag = __Pyx_PyObject_IsTrue(__pyx_arg_flag); if (unlikely((__pyx_v_flag == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 760, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_float_truncate.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate_2__set__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self), ((bool)__pyx_v_flag));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag) {
  int __pyx_r;

  /* "pyarrow/_compute.pyx":761
 *     @allow_float_truncate.setter
 *     def allow_float_truncate(self, c_bool flag):
 *         deref(self.options).allow_float_truncate = flag             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  (*__pyx_v_self->options).allow_float_truncate = __pyx_v_flag;

  /* "pyarrow/_compute.pyx":759
 *         return deref(self.options).allow_float_truncate
 * 
 *     @allow_float_truncate.setter             # <<<<<<<<<<<<<<
 *     def allow_float_truncate(self, c_bool flag):
 *         deref(self.options).allow_float_truncate = flag
*/

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":763
 *         deref(self.options).allow_float_truncate = flag
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_invalid_utf8(self):
 *         return deref(self.options).allow_invalid_utf8
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8___get__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8___get__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":765
 *     @property
 *     def allow_invalid_utf8(self):
 *         return deref(self.options).allow_invalid_utf8             # <<<<<<<<<<<<<<
 * 
 *     @allow_invalid_utf8.setter
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong((*__pyx_v_self->options).allow_invalid_utf8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":763
 *         deref(self.options).allow_float_truncate = flag
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def allow_invalid_utf8(self):
 *         return deref(self.options).allow_invalid_utf8
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_invalid_utf8.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":767
 *         return deref(self.options).allow_invalid_utf8
 * 
 *     @allow_invalid_utf8.setter             # <<<<<<<<<<<<<<
 *     def allow_invalid_utf8(self, c_bool flag):
 *         deref(self.options).allow_invalid_utf8 = flag
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_flag) {
  bool __pyx_v_flag;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_flag); {
    __pyx_v_flag = __Pyx_PyObject_IsTrue(__pyx_arg_flag); if (unlikely((__pyx_v_flag == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 768, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.allow_invalid_utf8.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8_2__set__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self), ((bool)__pyx_v_flag));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8_2__set__(struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, bool __pyx_v_flag) {
  int __pyx_r;

  /* "pyarrow/_compute.pyx":769
 *     @allow_invalid_utf8.setter
 *     def allow_invalid_utf8(self, c_bool flag):
 *         deref(self.options).allow_invalid_utf8 = flag             # <<<<<<<<<<<<<<
 * 
 * 
*/
  (*__pyx_v_self->options).allow_invalid_utf8 = __pyx_v_flag;

  /* "pyarrow/_compute.pyx":767
 *         return deref(self.options).allow_invalid_utf8
 * 
 *     @allow_invalid_utf8.setter             # <<<<<<<<<<<<<<
 *     def allow_invalid_utf8(self, c_bool flag):
 *         deref(self.options).allow_invalid_utf8 = flag
*/

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_CastOptions_10__reduce_cython__, "_CastOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_CastOptions_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_10__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_10__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_options_self_wrapped_cannot, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_CastOptions_12__setstate_cython__, "_CastOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_CastOptions_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_12__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_CastOptions_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_CastOptions_12__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_CastOptions_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CastOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_options_self_wrapped_cannot, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._CastOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":794
 *     """
 * 
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,             # <<<<<<<<<<<<<<
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11CastOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11CastOptions___init__, "CastOptions.__init__(self, target_type=None, *, allow_int_overflow=None, allow_time_truncate=None, allow_time_overflow=None, allow_decimal_truncate=None, allow_float_truncate=None, allow_invalid_utf8=None)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11CastOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11CastOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11CastOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11CastOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_target_type = 0;
  PyObject *__pyx_v_allow_int_overflow = 0;
  PyObject *__pyx_v_allow_time_truncate = 0;
  PyObject *__pyx_v_allow_time_overflow = 0;
  PyObject *__pyx_v_allow_decimal_truncate = 0;
  PyObject *__pyx_v_allow_float_truncate = 0;
  PyObject *__pyx_v_allow_invalid_utf8 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[8] = {0,0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_target_type,&__pyx_mstate_global->__pyx_n_u_allow_int_overflow,&__pyx_mstate_global->__pyx_n_u_allow_time_truncate,&__pyx_mstate_global->__pyx_n_u_allow_time_overflow,&__pyx_mstate_global->__pyx_n_u_allow_decimal_truncate,&__pyx_mstate_global->__pyx_n_u_allow_float_truncate,&__pyx_mstate_global->__pyx_n_u_allow_invalid_utf8,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 794, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 794, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 794, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 794, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));

      /* "pyarrow/_compute.pyx":795
 * 
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,
 *                  allow_time_truncate=None, allow_time_overflow=None,             # <<<<<<<<<<<<<<
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
 *                  allow_invalid_utf8=None):
*/
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));

      /* "pyarrow/_compute.pyx":796
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,             # <<<<<<<<<<<<<<
 *                  allow_invalid_utf8=None):
 *         self._set_options(target_type, allow_int_overflow, allow_time_truncate,
*/
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[6]) values[6] = __Pyx_NewRef(((PyObject *)Py_None));

      /* "pyarrow/_compute.pyx":797
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
 *                  allow_invalid_utf8=None):             # <<<<<<<<<<<<<<
 *         self._set_options(target_type, allow_int_overflow, allow_time_truncate,
 *                           allow_time_overflow, allow_decimal_truncate,
*/
      if (!values[7]) values[7] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 794, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 794, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 794, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }

      /* "pyarrow/_compute.pyx":794
 *     """
 * 
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,             # <<<<<<<<<<<<<<
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
*/
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));

      /* "pyarrow/_compute.pyx":795
 * 
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,
 *                  allow_time_truncate=None, allow_time_overflow=None,             # <<<<<<<<<<<<<<
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
 *                  allow_invalid_utf8=None):
*/
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));

      /* "pyarrow/_compute.pyx":796
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,             # <<<<<<<<<<<<<<
 *                  allow_invalid_utf8=None):
 *         self._set_options(target_type, allow_int_overflow, allow_time_truncate,
*/
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[6]) values[6] = __Pyx_NewRef(((PyObject *)Py_None));

      /* "pyarrow/_compute.pyx":797
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
 *                  allow_invalid_utf8=None):             # <<<<<<<<<<<<<<
 *         self._set_options(target_type, allow_int_overflow, allow_time_truncate,
 *                           allow_time_overflow, allow_decimal_truncate,
*/
      if (!values[7]) values[7] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_self = values[0];
    __pyx_v_target_type = values[1];
    __pyx_v_allow_int_overflow = values[2];
    __pyx_v_allow_time_truncate = values[3];
    __pyx_v_allow_time_overflow = values[4];
    __pyx_v_allow_decimal_truncate = values[5];
    __pyx_v_allow_float_truncate = values[6];
    __pyx_v_allow_invalid_utf8 = values[7];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 794, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.CastOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11CastOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_target_type, __pyx_v_allow_int_overflow, __pyx_v_allow_time_truncate, __pyx_v_allow_time_overflow, __pyx_v_allow_decimal_truncate, __pyx_v_allow_float_truncate, __pyx_v_allow_invalid_utf8);

  /* "pyarrow/_compute.pyx":794
 *     """
 * 
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,             # <<<<<<<<<<<<<<
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11CastOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_target_type, PyObject *__pyx_v_allow_int_overflow, PyObject *__pyx_v_allow_time_truncate, PyObject *__pyx_v_allow_time_overflow, PyObject *__pyx_v_allow_decimal_truncate, PyObject *__pyx_v_allow_float_truncate, PyObject *__pyx_v_allow_invalid_utf8) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":798
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
 *                  allow_invalid_utf8=None):
 *         self._set_options(target_type, allow_int_overflow, allow_time_truncate,             # <<<<<<<<<<<<<<
 *                           allow_time_overflow, allow_decimal_truncate,
 *                           allow_float_truncate, allow_invalid_utf8)
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);

  /* "pyarrow/_compute.pyx":800
 *         self._set_options(target_type, allow_int_overflow, allow_time_truncate,
 *                           allow_time_overflow, allow_decimal_truncate,
 *                           allow_float_truncate, allow_invalid_utf8)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[8] = {__pyx_t_2, __pyx_v_target_type, __pyx_v_allow_int_overflow, __pyx_v_allow_time_truncate, __pyx_v_allow_time_overflow, __pyx_v_allow_decimal_truncate, __pyx_v_allow_float_truncate, __pyx_v_allow_invalid_utf8};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (8-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":794
 *     """
 * 
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,             # <<<<<<<<<<<<<<
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.CastOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":802
 *                           allow_float_truncate, allow_invalid_utf8)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def safe(target_type=None):
 *         """"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11CastOptions_3safe(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11CastOptions_2safe, "CastOptions.safe(target_type=None)\n\n\"\nCreate a CastOptions for a safe cast.\n\nParameters\n----------\ntarget_type : optional\n    Target cast type for the safe cast.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11CastOptions_3safe = {"safe", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11CastOptions_3safe, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11CastOptions_2safe};
static PyObject *__pyx_pw_7pyarrow_8_compute_11CastOptions_3safe(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_target_type = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("safe (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_target_type,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 802, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 802, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "safe", 0) < (0)) __PYX_ERR(0, 802, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":803
 * 
 *     @staticmethod
 *     def safe(target_type=None):             # <<<<<<<<<<<<<<
 *         """"
 *         Create a CastOptions for a safe cast.
*/
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    } else {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 802, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_target_type = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("safe", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 802, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.CastOptions.safe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11CastOptions_2safe(__pyx_self, __pyx_v_target_type);

  /* "pyarrow/_compute.pyx":802
 *                           allow_float_truncate, allow_invalid_utf8)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def safe(target_type=None):
 *         """"
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11CastOptions_2safe(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target_type) {
  PyObject *__pyx_v_self = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("safe", 0);

  /* "pyarrow/_compute.pyx":812
 *             Target cast type for the safe cast.
 *         """
 *         self = CastOptions()             # <<<<<<<<<<<<<<
 *         self._set_safe()
 *         self._set_type(target_type)
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_CastOptions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 812, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_self = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":813
 *         """
 *         self = CastOptions()
 *         self._set_safe()             # <<<<<<<<<<<<<<
 *         self._set_type(target_type)
 *         return self
*/
  __pyx_t_3 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_safe, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 813, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":814
 *         self = CastOptions()
 *         self._set_safe()
 *         self._set_type(target_type)             # <<<<<<<<<<<<<<
 *         return self
 * 
*/
  __pyx_t_3 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_target_type};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_type, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 814, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":815
 *         self._set_safe()
 *         self._set_type(target_type)
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":802
 *                           allow_float_truncate, allow_invalid_utf8)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def safe(target_type=None):
 *         """"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.CastOptions.safe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_self);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":817
 *         return self
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def unsafe(target_type=None):
 *         """"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11CastOptions_5unsafe(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11CastOptions_4unsafe, "CastOptions.unsafe(target_type=None)\n\n\"\nCreate a CastOptions for an unsafe cast.\n\nParameters\n----------\ntarget_type : optional\n    Target cast type for the unsafe cast.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11CastOptions_5unsafe = {"unsafe", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11CastOptions_5unsafe, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11CastOptions_4unsafe};
static PyObject *__pyx_pw_7pyarrow_8_compute_11CastOptions_5unsafe(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_target_type = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("unsafe (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_target_type,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 817, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 817, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "unsafe", 0) < (0)) __PYX_ERR(0, 817, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":818
 * 
 *     @staticmethod
 *     def unsafe(target_type=None):             # <<<<<<<<<<<<<<
 *         """"
 *         Create a CastOptions for an unsafe cast.
*/
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    } else {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 817, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_target_type = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("unsafe", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 817, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.CastOptions.unsafe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11CastOptions_4unsafe(__pyx_self, __pyx_v_target_type);

  /* "pyarrow/_compute.pyx":817
 *         return self
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def unsafe(target_type=None):
 *         """"
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11CastOptions_4unsafe(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_target_type) {
  PyObject *__pyx_v_self = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("unsafe", 0);

  /* "pyarrow/_compute.pyx":827
 *             Target cast type for the unsafe cast.
 *         """
 *         self = CastOptions()             # <<<<<<<<<<<<<<
 *         self._set_unsafe()
 *         self._set_type(target_type)
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_CastOptions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 827, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_self = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":828
 *         """
 *         self = CastOptions()
 *         self._set_unsafe()             # <<<<<<<<<<<<<<
 *         self._set_type(target_type)
 *         return self
*/
  __pyx_t_3 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_unsafe, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":829
 *         self = CastOptions()
 *         self._set_unsafe()
 *         self._set_type(target_type)             # <<<<<<<<<<<<<<
 *         return self
 * 
*/
  __pyx_t_3 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_target_type};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_type, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":830
 *         self._set_unsafe()
 *         self._set_type(target_type)
 *         return self             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":817
 *         return self
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def unsafe(target_type=None):
 *         """"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.CastOptions.unsafe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_self);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":833
 * 
 * 
 * def _skip_nulls_doc():             # <<<<<<<<<<<<<<
 *     # (note the weird indent because of how the string is inserted
 *     #  by callers)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15_skip_nulls_doc(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_14_skip_nulls_doc, "_skip_nulls_doc()");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15_skip_nulls_doc = {"_skip_nulls_doc", (PyCFunction)__pyx_pw_7pyarrow_8_compute_15_skip_nulls_doc, METH_NOARGS, __pyx_doc_7pyarrow_8_compute_14_skip_nulls_doc};
static PyObject *__pyx_pw_7pyarrow_8_compute_15_skip_nulls_doc(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_skip_nulls_doc (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14_skip_nulls_doc(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14_skip_nulls_doc(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_skip_nulls_doc", 0);

  /* "pyarrow/_compute.pyx":836
 *     # (note the weird indent because of how the string is inserted
 *     #  by callers)
 *     return """skip_nulls : bool, default True             # <<<<<<<<<<<<<<
 *         Whether to skip (ignore) nulls in the input.
 *         If False, any null in the input forces the output to null.
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_skip_nulls_bool_default_True_Whe);
  __pyx_r = __pyx_mstate_global->__pyx_kp_u_skip_nulls_bool_default_True_Whe;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":833
 * 
 * 
 * def _skip_nulls_doc():             # <<<<<<<<<<<<<<
 *     # (note the weird indent because of how the string is inserted
 *     #  by callers)
*/

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":842
 * 
 * 
 * def _min_count_doc(*, default):             # <<<<<<<<<<<<<<
 *     return f"""min_count : int, default {default}
 *         Minimum number of non-null values in the input.  If the number
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_min_count_doc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_min_count_doc, "_min_count_doc(*, default)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_min_count_doc = {"_min_count_doc", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_min_count_doc, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_min_count_doc};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_min_count_doc(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_default = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_min_count_doc (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_default,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 842, __pyx_L3_error)
    if (likely(__pyx_kwds_len > 0)) {
      switch (__pyx_nargs) {
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, 0, __pyx_kwds_len, "_min_count_doc", 0) < (0)) __PYX_ERR(0, 842, __pyx_L3_error)
      for (Py_ssize_t i = 0; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseKeywordRequired("_min_count_doc", *(__pyx_pyargnames[i - 0])); __PYX_ERR(0, 842, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 0)) {
      goto __pyx_L5_argtuple_error;
    } else {
      __Pyx_RaiseKeywordRequired("_min_count_doc", __pyx_mstate_global->__pyx_n_u_default); __PYX_ERR(0, 842, __pyx_L3_error)
    }
    __pyx_v_default = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_min_count_doc", 1, 0, 0, __pyx_nargs); __PYX_ERR(0, 842, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._min_count_doc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_min_count_doc(__pyx_self, __pyx_v_default);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_min_count_doc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_default) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2[3];
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_min_count_doc", 0);

  /* "pyarrow/_compute.pyx":843
 * 
 * def _min_count_doc(*, default):
 *     return f"""min_count : int, default {default}             # <<<<<<<<<<<<<<
 *         Minimum number of non-null values in the input.  If the number
 *         of non-null values is below `min_count`, the output is null.
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_v_default, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2[0] = __pyx_mstate_global->__pyx_kp_u_min_count_int_default;
  __pyx_t_2[1] = __pyx_t_1;
  __pyx_t_2[2] = __pyx_mstate_global->__pyx_kp_u_Minimum_number_of_non_null_valu;
  __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_2, 3, 25 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 141, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1));
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":842
 * 
 * 
 * def _min_count_doc(*, default):             # <<<<<<<<<<<<<<
 *     return f"""min_count : int, default {default}
 *         Minimum number of non-null values in the input.  If the number
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._min_count_doc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":850
 * 
 * cdef class _ElementWiseAggregateOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CElementWiseAggregateOptions(skip_nulls))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_28_ElementWiseAggregateOptions__set_options, "_ElementWiseAggregateOptions._set_options(self, skip_nulls)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_28_ElementWiseAggregateOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_28_ElementWiseAggregateOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_skip_nulls = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_skip_nulls,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 850, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 850, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 850, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 850, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 850, __pyx_L3_error)
    }
    __pyx_v_skip_nulls = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 850, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ElementWiseAggregateOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_28_ElementWiseAggregateOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions *)__pyx_v_self), __pyx_v_skip_nulls);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_28_ElementWiseAggregateOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions *__pyx_v_self, PyObject *__pyx_v_skip_nulls) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":851
 * cdef class _ElementWiseAggregateOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls):
 *         self.wrapped.reset(new CElementWiseAggregateOptions(skip_nulls))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_skip_nulls); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::ElementWiseAggregateOptions(__pyx_t_1));

  /* "pyarrow/_compute.pyx":850
 * 
 * cdef class _ElementWiseAggregateOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CElementWiseAggregateOptions(skip_nulls))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ElementWiseAggregateOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_28_ElementWiseAggregateOptions_2__reduce_cython__, "_ElementWiseAggregateOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_28_ElementWiseAggregateOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_28_ElementWiseAggregateOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_28_ElementWiseAggregateOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_28_ElementWiseAggregateOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ElementWiseAggregateOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_28_ElementWiseAggregateOptions_4__setstate_cython__, "_ElementWiseAggregateOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_28_ElementWiseAggregateOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_28_ElementWiseAggregateOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ElementWiseAggregateOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_28_ElementWiseAggregateOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_28_ElementWiseAggregateOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ElementWiseAggregateOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":863
 *     """
 * 
 *     def __init__(self, *, skip_nulls=True):             # <<<<<<<<<<<<<<
 *         self._set_options(skip_nulls)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_27ElementWiseAggregateOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_27ElementWiseAggregateOptions___init__, "ElementWiseAggregateOptions.__init__(self, *, skip_nulls=True)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_27ElementWiseAggregateOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_27ElementWiseAggregateOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_27ElementWiseAggregateOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_27ElementWiseAggregateOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_skip_nulls,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 863, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 863, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 863, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 863, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 863, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
    }
    __pyx_v_self = values[0];
    __pyx_v_skip_nulls = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 863, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ElementWiseAggregateOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_27ElementWiseAggregateOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_skip_nulls);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_27ElementWiseAggregateOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_skip_nulls) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":864
 * 
 *     def __init__(self, *, skip_nulls=True):
 *         self._set_options(skip_nulls)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_skip_nulls};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 864, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":863
 *     """
 * 
 *     def __init__(self, *, skip_nulls=True):             # <<<<<<<<<<<<<<
 *         self._set_options(skip_nulls)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.ElementWiseAggregateOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":867
 * 
 * 
 * cdef CRoundMode unwrap_round_mode(round_mode) except *:             # <<<<<<<<<<<<<<
 *     if round_mode == "down":
 *         return CRoundMode_DOWN
*/

static arrow::compute::RoundMode __pyx_f_7pyarrow_8_compute_unwrap_round_mode(PyObject *__pyx_v_round_mode) {
  arrow::compute::RoundMode __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("unwrap_round_mode", 0);

  /* "pyarrow/_compute.pyx":868
 * 
 * cdef CRoundMode unwrap_round_mode(round_mode) except *:
 *     if round_mode == "down":             # <<<<<<<<<<<<<<
 *         return CRoundMode_DOWN
 *     elif round_mode == "up":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_round_mode, __pyx_mstate_global->__pyx_n_u_down, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 868, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":869
 * cdef CRoundMode unwrap_round_mode(round_mode) except *:
 *     if round_mode == "down":
 *         return CRoundMode_DOWN             # <<<<<<<<<<<<<<
 *     elif round_mode == "up":
 *         return CRoundMode_UP
*/
    __pyx_r = arrow::compute::RoundMode::DOWN;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":868
 * 
 * cdef CRoundMode unwrap_round_mode(round_mode) except *:
 *     if round_mode == "down":             # <<<<<<<<<<<<<<
 *         return CRoundMode_DOWN
 *     elif round_mode == "up":
*/
  }

  /* "pyarrow/_compute.pyx":870
 *     if round_mode == "down":
 *         return CRoundMode_DOWN
 *     elif round_mode == "up":             # <<<<<<<<<<<<<<
 *         return CRoundMode_UP
 *     elif round_mode == "towards_zero":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_round_mode, __pyx_mstate_global->__pyx_n_u_up, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 870, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":871
 *         return CRoundMode_DOWN
 *     elif round_mode == "up":
 *         return CRoundMode_UP             # <<<<<<<<<<<<<<
 *     elif round_mode == "towards_zero":
 *         return CRoundMode_TOWARDS_ZERO
*/
    __pyx_r = arrow::compute::RoundMode::UP;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":870
 *     if round_mode == "down":
 *         return CRoundMode_DOWN
 *     elif round_mode == "up":             # <<<<<<<<<<<<<<
 *         return CRoundMode_UP
 *     elif round_mode == "towards_zero":
*/
  }

  /* "pyarrow/_compute.pyx":872
 *     elif round_mode == "up":
 *         return CRoundMode_UP
 *     elif round_mode == "towards_zero":             # <<<<<<<<<<<<<<
 *         return CRoundMode_TOWARDS_ZERO
 *     elif round_mode == "towards_infinity":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_round_mode, __pyx_mstate_global->__pyx_n_u_towards_zero, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 872, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":873
 *         return CRoundMode_UP
 *     elif round_mode == "towards_zero":
 *         return CRoundMode_TOWARDS_ZERO             # <<<<<<<<<<<<<<
 *     elif round_mode == "towards_infinity":
 *         return CRoundMode_TOWARDS_INFINITY
*/
    __pyx_r = arrow::compute::RoundMode::TOWARDS_ZERO;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":872
 *     elif round_mode == "up":
 *         return CRoundMode_UP
 *     elif round_mode == "towards_zero":             # <<<<<<<<<<<<<<
 *         return CRoundMode_TOWARDS_ZERO
 *     elif round_mode == "towards_infinity":
*/
  }

  /* "pyarrow/_compute.pyx":874
 *     elif round_mode == "towards_zero":
 *         return CRoundMode_TOWARDS_ZERO
 *     elif round_mode == "towards_infinity":             # <<<<<<<<<<<<<<
 *         return CRoundMode_TOWARDS_INFINITY
 *     elif round_mode == "half_down":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_round_mode, __pyx_mstate_global->__pyx_n_u_towards_infinity, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 874, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":875
 *         return CRoundMode_TOWARDS_ZERO
 *     elif round_mode == "towards_infinity":
 *         return CRoundMode_TOWARDS_INFINITY             # <<<<<<<<<<<<<<
 *     elif round_mode == "half_down":
 *         return CRoundMode_HALF_DOWN
*/
    __pyx_r = arrow::compute::RoundMode::TOWARDS_INFINITY;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":874
 *     elif round_mode == "towards_zero":
 *         return CRoundMode_TOWARDS_ZERO
 *     elif round_mode == "towards_infinity":             # <<<<<<<<<<<<<<
 *         return CRoundMode_TOWARDS_INFINITY
 *     elif round_mode == "half_down":
*/
  }

  /* "pyarrow/_compute.pyx":876
 *     elif round_mode == "towards_infinity":
 *         return CRoundMode_TOWARDS_INFINITY
 *     elif round_mode == "half_down":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_DOWN
 *     elif round_mode == "half_up":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_round_mode, __pyx_mstate_global->__pyx_n_u_half_down, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 876, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":877
 *         return CRoundMode_TOWARDS_INFINITY
 *     elif round_mode == "half_down":
 *         return CRoundMode_HALF_DOWN             # <<<<<<<<<<<<<<
 *     elif round_mode == "half_up":
 *         return CRoundMode_HALF_UP
*/
    __pyx_r = arrow::compute::RoundMode::HALF_DOWN;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":876
 *     elif round_mode == "towards_infinity":
 *         return CRoundMode_TOWARDS_INFINITY
 *     elif round_mode == "half_down":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_DOWN
 *     elif round_mode == "half_up":
*/
  }

  /* "pyarrow/_compute.pyx":878
 *     elif round_mode == "half_down":
 *         return CRoundMode_HALF_DOWN
 *     elif round_mode == "half_up":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_UP
 *     elif round_mode == "half_towards_zero":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_round_mode, __pyx_mstate_global->__pyx_n_u_half_up, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 878, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":879
 *         return CRoundMode_HALF_DOWN
 *     elif round_mode == "half_up":
 *         return CRoundMode_HALF_UP             # <<<<<<<<<<<<<<
 *     elif round_mode == "half_towards_zero":
 *         return CRoundMode_HALF_TOWARDS_ZERO
*/
    __pyx_r = arrow::compute::RoundMode::HALF_UP;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":878
 *     elif round_mode == "half_down":
 *         return CRoundMode_HALF_DOWN
 *     elif round_mode == "half_up":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_UP
 *     elif round_mode == "half_towards_zero":
*/
  }

  /* "pyarrow/_compute.pyx":880
 *     elif round_mode == "half_up":
 *         return CRoundMode_HALF_UP
 *     elif round_mode == "half_towards_zero":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_TOWARDS_ZERO
 *     elif round_mode == "half_towards_infinity":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_round_mode, __pyx_mstate_global->__pyx_n_u_half_towards_zero, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 880, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":881
 *         return CRoundMode_HALF_UP
 *     elif round_mode == "half_towards_zero":
 *         return CRoundMode_HALF_TOWARDS_ZERO             # <<<<<<<<<<<<<<
 *     elif round_mode == "half_towards_infinity":
 *         return CRoundMode_HALF_TOWARDS_INFINITY
*/
    __pyx_r = arrow::compute::RoundMode::HALF_TOWARDS_ZERO;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":880
 *     elif round_mode == "half_up":
 *         return CRoundMode_HALF_UP
 *     elif round_mode == "half_towards_zero":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_TOWARDS_ZERO
 *     elif round_mode == "half_towards_infinity":
*/
  }

  /* "pyarrow/_compute.pyx":882
 *     elif round_mode == "half_towards_zero":
 *         return CRoundMode_HALF_TOWARDS_ZERO
 *     elif round_mode == "half_towards_infinity":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_TOWARDS_INFINITY
 *     elif round_mode == "half_to_even":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_round_mode, __pyx_mstate_global->__pyx_n_u_half_towards_infinity, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 882, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":883
 *         return CRoundMode_HALF_TOWARDS_ZERO
 *     elif round_mode == "half_towards_infinity":
 *         return CRoundMode_HALF_TOWARDS_INFINITY             # <<<<<<<<<<<<<<
 *     elif round_mode == "half_to_even":
 *         return CRoundMode_HALF_TO_EVEN
*/
    __pyx_r = arrow::compute::RoundMode::HALF_TOWARDS_INFINITY;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":882
 *     elif round_mode == "half_towards_zero":
 *         return CRoundMode_HALF_TOWARDS_ZERO
 *     elif round_mode == "half_towards_infinity":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_TOWARDS_INFINITY
 *     elif round_mode == "half_to_even":
*/
  }

  /* "pyarrow/_compute.pyx":884
 *     elif round_mode == "half_towards_infinity":
 *         return CRoundMode_HALF_TOWARDS_INFINITY
 *     elif round_mode == "half_to_even":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_TO_EVEN
 *     elif round_mode == "half_to_odd":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_round_mode, __pyx_mstate_global->__pyx_n_u_half_to_even, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 884, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":885
 *         return CRoundMode_HALF_TOWARDS_INFINITY
 *     elif round_mode == "half_to_even":
 *         return CRoundMode_HALF_TO_EVEN             # <<<<<<<<<<<<<<
 *     elif round_mode == "half_to_odd":
 *         return CRoundMode_HALF_TO_ODD
*/
    __pyx_r = arrow::compute::RoundMode::HALF_TO_EVEN;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":884
 *     elif round_mode == "half_towards_infinity":
 *         return CRoundMode_HALF_TOWARDS_INFINITY
 *     elif round_mode == "half_to_even":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_TO_EVEN
 *     elif round_mode == "half_to_odd":
*/
  }

  /* "pyarrow/_compute.pyx":886
 *     elif round_mode == "half_to_even":
 *         return CRoundMode_HALF_TO_EVEN
 *     elif round_mode == "half_to_odd":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_TO_ODD
 *     _raise_invalid_function_option(round_mode, "round mode")
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_round_mode, __pyx_mstate_global->__pyx_n_u_half_to_odd, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 886, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":887
 *         return CRoundMode_HALF_TO_EVEN
 *     elif round_mode == "half_to_odd":
 *         return CRoundMode_HALF_TO_ODD             # <<<<<<<<<<<<<<
 *     _raise_invalid_function_option(round_mode, "round mode")
 * 
*/
    __pyx_r = arrow::compute::RoundMode::HALF_TO_ODD;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":886
 *     elif round_mode == "half_to_even":
 *         return CRoundMode_HALF_TO_EVEN
 *     elif round_mode == "half_to_odd":             # <<<<<<<<<<<<<<
 *         return CRoundMode_HALF_TO_ODD
 *     _raise_invalid_function_option(round_mode, "round mode")
*/
  }

  /* "pyarrow/_compute.pyx":888
 *     elif round_mode == "half_to_odd":
 *         return CRoundMode_HALF_TO_ODD
 *     _raise_invalid_function_option(round_mode, "round mode")             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_round_mode, __pyx_mstate_global->__pyx_kp_u_round_mode};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 888, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":867
 * 
 * 
 * cdef CRoundMode unwrap_round_mode(round_mode) except *:             # <<<<<<<<<<<<<<
 *     if round_mode == "down":
 *         return CRoundMode_DOWN
*/

  /* function exit code */
  __pyx_r = (arrow::compute::RoundMode) 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.unwrap_round_mode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = (arrow::compute::RoundMode) 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":892
 * 
 * cdef class _RoundOptions(FunctionOptions):
 *     def _set_options(self, ndigits, round_mode):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CRoundOptions(ndigits, unwrap_round_mode(round_mode))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_RoundOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_RoundOptions__set_options, "_RoundOptions._set_options(self, ndigits, round_mode)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_RoundOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_RoundOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_RoundOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_RoundOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_ndigits = 0;
  PyObject *__pyx_v_round_mode = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_ndigits,&__pyx_mstate_global->__pyx_n_u_round_mode_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 892, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 892, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 892, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 892, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 892, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 892, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 892, __pyx_L3_error)
    }
    __pyx_v_ndigits = values[0];
    __pyx_v_round_mode = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 892, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RoundOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_RoundOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__RoundOptions *)__pyx_v_self), __pyx_v_ndigits, __pyx_v_round_mode);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_RoundOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RoundOptions *__pyx_v_self, PyObject *__pyx_v_ndigits, PyObject *__pyx_v_round_mode) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
  arrow::compute::RoundMode __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":894
 *     def _set_options(self, ndigits, round_mode):
 *         self.wrapped.reset(
 *             new CRoundOptions(ndigits, unwrap_round_mode(round_mode))             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int64_t(__pyx_v_ndigits); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 894, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_7pyarrow_8_compute_unwrap_round_mode(__pyx_v_round_mode); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 894, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":893
 * cdef class _RoundOptions(FunctionOptions):
 *     def _set_options(self, ndigits, round_mode):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CRoundOptions(ndigits, unwrap_round_mode(round_mode))
 *         )
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::RoundOptions(__pyx_t_1, __pyx_t_2));

  /* "pyarrow/_compute.pyx":892
 * 
 * cdef class _RoundOptions(FunctionOptions):
 *     def _set_options(self, ndigits, round_mode):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CRoundOptions(ndigits, unwrap_round_mode(round_mode))
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RoundOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_RoundOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_RoundOptions_2__reduce_cython__, "_RoundOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_RoundOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_RoundOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_RoundOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_RoundOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_RoundOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__RoundOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_RoundOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RoundOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_RoundOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_RoundOptions_4__setstate_cython__, "_RoundOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_RoundOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_RoundOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_RoundOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_RoundOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RoundOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_RoundOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__RoundOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_RoundOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RoundOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":913
 *     """
 * 
 *     def __init__(self, ndigits=0, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(ndigits, round_mode)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12RoundOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12RoundOptions___init__, "RoundOptions.__init__(self, ndigits=0, round_mode='half_to_even')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12RoundOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12RoundOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12RoundOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12RoundOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_ndigits = 0;
  PyObject *__pyx_v_round_mode = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_ndigits,&__pyx_mstate_global->__pyx_n_u_round_mode_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 913, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 913, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 913, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 913, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 913, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_half_to_even)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(0, 913, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 913, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 913, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 913, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_half_to_even)));
    }
    __pyx_v_self = values[0];
    __pyx_v_ndigits = values[1];
    __pyx_v_round_mode = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 913, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.RoundOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12RoundOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_ndigits, __pyx_v_round_mode);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12RoundOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_ndigits, PyObject *__pyx_v_round_mode) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":914
 * 
 *     def __init__(self, ndigits=0, round_mode="half_to_even"):
 *         self._set_options(ndigits, round_mode)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_ndigits, __pyx_v_round_mode};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":913
 *     """
 * 
 *     def __init__(self, ndigits=0, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(ndigits, round_mode)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.RoundOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":918
 * 
 * cdef class _RoundBinaryOptions(FunctionOptions):
 *     def _set_options(self, round_mode):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CRoundBinaryOptions(unwrap_round_mode(round_mode))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19_RoundBinaryOptions__set_options, "_RoundBinaryOptions._set_options(self, round_mode)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19_RoundBinaryOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_RoundBinaryOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_round_mode = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_round_mode_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 918, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 918, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 918, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 918, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 918, __pyx_L3_error)
    }
    __pyx_v_round_mode = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 918, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RoundBinaryOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19_RoundBinaryOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions *)__pyx_v_self), __pyx_v_round_mode);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19_RoundBinaryOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions *__pyx_v_self, PyObject *__pyx_v_round_mode) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  arrow::compute::RoundMode __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":920
 *     def _set_options(self, round_mode):
 *         self.wrapped.reset(
 *             new CRoundBinaryOptions(unwrap_round_mode(round_mode))             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_1 = __pyx_f_7pyarrow_8_compute_unwrap_round_mode(__pyx_v_round_mode); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 920, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":919
 * cdef class _RoundBinaryOptions(FunctionOptions):
 *     def _set_options(self, round_mode):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CRoundBinaryOptions(unwrap_round_mode(round_mode))
 *         )
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::RoundBinaryOptions(__pyx_t_1));

  /* "pyarrow/_compute.pyx":918
 * 
 * cdef class _RoundBinaryOptions(FunctionOptions):
 *     def _set_options(self, round_mode):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CRoundBinaryOptions(unwrap_round_mode(round_mode))
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RoundBinaryOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19_RoundBinaryOptions_2__reduce_cython__, "_RoundBinaryOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19_RoundBinaryOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_RoundBinaryOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19_RoundBinaryOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19_RoundBinaryOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RoundBinaryOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19_RoundBinaryOptions_4__setstate_cython__, "_RoundBinaryOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19_RoundBinaryOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_RoundBinaryOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RoundBinaryOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19_RoundBinaryOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19_RoundBinaryOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RoundBinaryOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":937
 *     """
 * 
 *     def __init__(self, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(round_mode)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18RoundBinaryOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18RoundBinaryOptions___init__, "RoundBinaryOptions.__init__(self, round_mode='half_to_even')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18RoundBinaryOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18RoundBinaryOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18RoundBinaryOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_18RoundBinaryOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_round_mode = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_round_mode_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 937, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 937, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 937, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 937, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_half_to_even)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 937, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 937, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 937, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_half_to_even)));
    }
    __pyx_v_self = values[0];
    __pyx_v_round_mode = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 937, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.RoundBinaryOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18RoundBinaryOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_round_mode);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18RoundBinaryOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_round_mode) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":938
 * 
 *     def __init__(self, round_mode="half_to_even"):
 *         self._set_options(round_mode)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_round_mode};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 938, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":937
 *     """
 * 
 *     def __init__(self, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(round_mode)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.RoundBinaryOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":941
 * 
 * 
 * cdef CCalendarUnit unwrap_round_temporal_unit(unit) except *:             # <<<<<<<<<<<<<<
 *     if unit == "nanosecond":
 *         return CCalendarUnit_NANOSECOND
*/

static arrow::compute::CalendarUnit __pyx_f_7pyarrow_8_compute_unwrap_round_temporal_unit(PyObject *__pyx_v_unit) {
  arrow::compute::CalendarUnit __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("unwrap_round_temporal_unit", 0);

  /* "pyarrow/_compute.pyx":942
 * 
 * cdef CCalendarUnit unwrap_round_temporal_unit(unit) except *:
 *     if unit == "nanosecond":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_NANOSECOND
 *     elif unit == "microsecond":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unit, __pyx_mstate_global->__pyx_n_u_nanosecond, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 942, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":943
 * cdef CCalendarUnit unwrap_round_temporal_unit(unit) except *:
 *     if unit == "nanosecond":
 *         return CCalendarUnit_NANOSECOND             # <<<<<<<<<<<<<<
 *     elif unit == "microsecond":
 *         return CCalendarUnit_MICROSECOND
*/
    __pyx_r = arrow::compute::CalendarUnit::NANOSECOND;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":942
 * 
 * cdef CCalendarUnit unwrap_round_temporal_unit(unit) except *:
 *     if unit == "nanosecond":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_NANOSECOND
 *     elif unit == "microsecond":
*/
  }

  /* "pyarrow/_compute.pyx":944
 *     if unit == "nanosecond":
 *         return CCalendarUnit_NANOSECOND
 *     elif unit == "microsecond":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_MICROSECOND
 *     elif unit == "millisecond":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unit, __pyx_mstate_global->__pyx_n_u_microsecond, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 944, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":945
 *         return CCalendarUnit_NANOSECOND
 *     elif unit == "microsecond":
 *         return CCalendarUnit_MICROSECOND             # <<<<<<<<<<<<<<
 *     elif unit == "millisecond":
 *         return CCalendarUnit_MILLISECOND
*/
    __pyx_r = arrow::compute::CalendarUnit::MICROSECOND;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":944
 *     if unit == "nanosecond":
 *         return CCalendarUnit_NANOSECOND
 *     elif unit == "microsecond":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_MICROSECOND
 *     elif unit == "millisecond":
*/
  }

  /* "pyarrow/_compute.pyx":946
 *     elif unit == "microsecond":
 *         return CCalendarUnit_MICROSECOND
 *     elif unit == "millisecond":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_MILLISECOND
 *     elif unit == "second":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unit, __pyx_mstate_global->__pyx_n_u_millisecond, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 946, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":947
 *         return CCalendarUnit_MICROSECOND
 *     elif unit == "millisecond":
 *         return CCalendarUnit_MILLISECOND             # <<<<<<<<<<<<<<
 *     elif unit == "second":
 *         return CCalendarUnit_SECOND
*/
    __pyx_r = arrow::compute::CalendarUnit::MILLISECOND;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":946
 *     elif unit == "microsecond":
 *         return CCalendarUnit_MICROSECOND
 *     elif unit == "millisecond":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_MILLISECOND
 *     elif unit == "second":
*/
  }

  /* "pyarrow/_compute.pyx":948
 *     elif unit == "millisecond":
 *         return CCalendarUnit_MILLISECOND
 *     elif unit == "second":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_SECOND
 *     elif unit == "minute":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unit, __pyx_mstate_global->__pyx_n_u_second, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 948, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":949
 *         return CCalendarUnit_MILLISECOND
 *     elif unit == "second":
 *         return CCalendarUnit_SECOND             # <<<<<<<<<<<<<<
 *     elif unit == "minute":
 *         return CCalendarUnit_MINUTE
*/
    __pyx_r = arrow::compute::CalendarUnit::SECOND;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":948
 *     elif unit == "millisecond":
 *         return CCalendarUnit_MILLISECOND
 *     elif unit == "second":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_SECOND
 *     elif unit == "minute":
*/
  }

  /* "pyarrow/_compute.pyx":950
 *     elif unit == "second":
 *         return CCalendarUnit_SECOND
 *     elif unit == "minute":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_MINUTE
 *     elif unit == "hour":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unit, __pyx_mstate_global->__pyx_n_u_minute, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 950, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":951
 *         return CCalendarUnit_SECOND
 *     elif unit == "minute":
 *         return CCalendarUnit_MINUTE             # <<<<<<<<<<<<<<
 *     elif unit == "hour":
 *         return CCalendarUnit_HOUR
*/
    __pyx_r = arrow::compute::CalendarUnit::MINUTE;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":950
 *     elif unit == "second":
 *         return CCalendarUnit_SECOND
 *     elif unit == "minute":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_MINUTE
 *     elif unit == "hour":
*/
  }

  /* "pyarrow/_compute.pyx":952
 *     elif unit == "minute":
 *         return CCalendarUnit_MINUTE
 *     elif unit == "hour":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_HOUR
 *     elif unit == "day":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unit, __pyx_mstate_global->__pyx_n_u_hour, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 952, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":953
 *         return CCalendarUnit_MINUTE
 *     elif unit == "hour":
 *         return CCalendarUnit_HOUR             # <<<<<<<<<<<<<<
 *     elif unit == "day":
 *         return CCalendarUnit_DAY
*/
    __pyx_r = arrow::compute::CalendarUnit::HOUR;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":952
 *     elif unit == "minute":
 *         return CCalendarUnit_MINUTE
 *     elif unit == "hour":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_HOUR
 *     elif unit == "day":
*/
  }

  /* "pyarrow/_compute.pyx":954
 *     elif unit == "hour":
 *         return CCalendarUnit_HOUR
 *     elif unit == "day":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_DAY
 *     elif unit == "week":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unit, __pyx_mstate_global->__pyx_n_u_day, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 954, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":955
 *         return CCalendarUnit_HOUR
 *     elif unit == "day":
 *         return CCalendarUnit_DAY             # <<<<<<<<<<<<<<
 *     elif unit == "week":
 *         return CCalendarUnit_WEEK
*/
    __pyx_r = arrow::compute::CalendarUnit::DAY;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":954
 *     elif unit == "hour":
 *         return CCalendarUnit_HOUR
 *     elif unit == "day":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_DAY
 *     elif unit == "week":
*/
  }

  /* "pyarrow/_compute.pyx":956
 *     elif unit == "day":
 *         return CCalendarUnit_DAY
 *     elif unit == "week":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_WEEK
 *     elif unit == "month":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unit, __pyx_mstate_global->__pyx_n_u_week, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 956, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":957
 *         return CCalendarUnit_DAY
 *     elif unit == "week":
 *         return CCalendarUnit_WEEK             # <<<<<<<<<<<<<<
 *     elif unit == "month":
 *         return CCalendarUnit_MONTH
*/
    __pyx_r = arrow::compute::CalendarUnit::WEEK;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":956
 *     elif unit == "day":
 *         return CCalendarUnit_DAY
 *     elif unit == "week":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_WEEK
 *     elif unit == "month":
*/
  }

  /* "pyarrow/_compute.pyx":958
 *     elif unit == "week":
 *         return CCalendarUnit_WEEK
 *     elif unit == "month":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_MONTH
 *     elif unit == "quarter":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unit, __pyx_mstate_global->__pyx_n_u_month, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 958, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":959
 *         return CCalendarUnit_WEEK
 *     elif unit == "month":
 *         return CCalendarUnit_MONTH             # <<<<<<<<<<<<<<
 *     elif unit == "quarter":
 *         return CCalendarUnit_QUARTER
*/
    __pyx_r = arrow::compute::CalendarUnit::MONTH;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":958
 *     elif unit == "week":
 *         return CCalendarUnit_WEEK
 *     elif unit == "month":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_MONTH
 *     elif unit == "quarter":
*/
  }

  /* "pyarrow/_compute.pyx":960
 *     elif unit == "month":
 *         return CCalendarUnit_MONTH
 *     elif unit == "quarter":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_QUARTER
 *     elif unit == "year":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unit, __pyx_mstate_global->__pyx_n_u_quarter, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 960, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":961
 *         return CCalendarUnit_MONTH
 *     elif unit == "quarter":
 *         return CCalendarUnit_QUARTER             # <<<<<<<<<<<<<<
 *     elif unit == "year":
 *         return CCalendarUnit_YEAR
*/
    __pyx_r = arrow::compute::CalendarUnit::QUARTER;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":960
 *     elif unit == "month":
 *         return CCalendarUnit_MONTH
 *     elif unit == "quarter":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_QUARTER
 *     elif unit == "year":
*/
  }

  /* "pyarrow/_compute.pyx":962
 *     elif unit == "quarter":
 *         return CCalendarUnit_QUARTER
 *     elif unit == "year":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_YEAR
 *     _raise_invalid_function_option(unit, "Calendar unit")
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unit, __pyx_mstate_global->__pyx_n_u_year, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 962, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":963
 *         return CCalendarUnit_QUARTER
 *     elif unit == "year":
 *         return CCalendarUnit_YEAR             # <<<<<<<<<<<<<<
 *     _raise_invalid_function_option(unit, "Calendar unit")
 * 
*/
    __pyx_r = arrow::compute::CalendarUnit::YEAR;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":962
 *     elif unit == "quarter":
 *         return CCalendarUnit_QUARTER
 *     elif unit == "year":             # <<<<<<<<<<<<<<
 *         return CCalendarUnit_YEAR
 *     _raise_invalid_function_option(unit, "Calendar unit")
*/
  }

  /* "pyarrow/_compute.pyx":964
 *     elif unit == "year":
 *         return CCalendarUnit_YEAR
 *     _raise_invalid_function_option(unit, "Calendar unit")             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_unit, __pyx_mstate_global->__pyx_kp_u_Calendar_unit};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":941
 * 
 * 
 * cdef CCalendarUnit unwrap_round_temporal_unit(unit) except *:             # <<<<<<<<<<<<<<
 *     if unit == "nanosecond":
 *         return CCalendarUnit_NANOSECOND
*/

  /* function exit code */
  __pyx_r = (arrow::compute::CalendarUnit) 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.unwrap_round_temporal_unit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = (arrow::compute::CalendarUnit) 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":968
 * 
 * cdef class _RoundTemporalOptions(FunctionOptions):
 *     def _set_options(self, multiple, unit, week_starts_monday,             # <<<<<<<<<<<<<<
 *                      ceil_is_strictly_greater, calendar_based_origin):
 *         self.wrapped.reset(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_21_RoundTemporalOptions__set_options, "_RoundTemporalOptions._set_options(self, multiple, unit, week_starts_monday, ceil_is_strictly_greater, calendar_based_origin)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_21_RoundTemporalOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_RoundTemporalOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_multiple = 0;
  PyObject *__pyx_v_unit = 0;
  PyObject *__pyx_v_week_starts_monday = 0;
  PyObject *__pyx_v_ceil_is_strictly_greater = 0;
  PyObject *__pyx_v_calendar_based_origin = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_multiple,&__pyx_mstate_global->__pyx_n_u_unit,&__pyx_mstate_global->__pyx_n_u_week_starts_monday,&__pyx_mstate_global->__pyx_n_u_ceil_is_strictly_greater,&__pyx_mstate_global->__pyx_n_u_calendar_based_origin,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 968, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 968, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 968, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 968, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 968, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 968, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 968, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 5, 5, i); __PYX_ERR(0, 968, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 968, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 968, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 968, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 968, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 968, __pyx_L3_error)
    }
    __pyx_v_multiple = values[0];
    __pyx_v_unit = values[1];
    __pyx_v_week_starts_monday = values[2];
    __pyx_v_ceil_is_strictly_greater = values[3];
    __pyx_v_calendar_based_origin = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 968, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RoundTemporalOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21_RoundTemporalOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions *)__pyx_v_self), __pyx_v_multiple, __pyx_v_unit, __pyx_v_week_starts_monday, __pyx_v_ceil_is_strictly_greater, __pyx_v_calendar_based_origin);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21_RoundTemporalOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions *__pyx_v_self, PyObject *__pyx_v_multiple, PyObject *__pyx_v_unit, PyObject *__pyx_v_week_starts_monday, PyObject *__pyx_v_ceil_is_strictly_greater, PyObject *__pyx_v_calendar_based_origin) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  arrow::compute::CalendarUnit __pyx_t_2;
  bool __pyx_t_3;
  bool __pyx_t_4;
  bool __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":972
 *         self.wrapped.reset(
 *             new CRoundTemporalOptions(
 *                 multiple, unwrap_round_temporal_unit(unit),             # <<<<<<<<<<<<<<
 *                 week_starts_monday, ceil_is_strictly_greater,
 *                 calendar_based_origin)
*/
  __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_multiple); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_7pyarrow_8_compute_unwrap_round_temporal_unit(__pyx_v_unit); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":973
 *             new CRoundTemporalOptions(
 *                 multiple, unwrap_round_temporal_unit(unit),
 *                 week_starts_monday, ceil_is_strictly_greater,             # <<<<<<<<<<<<<<
 *                 calendar_based_origin)
 *         )
*/
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_week_starts_monday); if (unlikely((__pyx_t_3 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 973, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_ceil_is_strictly_greater); if (unlikely((__pyx_t_4 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 973, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":974
 *                 multiple, unwrap_round_temporal_unit(unit),
 *                 week_starts_monday, ceil_is_strictly_greater,
 *                 calendar_based_origin)             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_calendar_based_origin); if (unlikely((__pyx_t_5 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 974, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":970
 *     def _set_options(self, multiple, unit, week_starts_monday,
 *                      ceil_is_strictly_greater, calendar_based_origin):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CRoundTemporalOptions(
 *                 multiple, unwrap_round_temporal_unit(unit),
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::RoundTemporalOptions(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5));

  /* "pyarrow/_compute.pyx":968
 * 
 * cdef class _RoundTemporalOptions(FunctionOptions):
 *     def _set_options(self, multiple, unit, week_starts_monday,             # <<<<<<<<<<<<<<
 *                      ceil_is_strictly_greater, calendar_based_origin):
 *         self.wrapped.reset(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RoundTemporalOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_21_RoundTemporalOptions_2__reduce_cython__, "_RoundTemporalOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_21_RoundTemporalOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_RoundTemporalOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21_RoundTemporalOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21_RoundTemporalOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RoundTemporalOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_21_RoundTemporalOptions_4__setstate_cython__, "_RoundTemporalOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_21_RoundTemporalOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_RoundTemporalOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RoundTemporalOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21_RoundTemporalOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21_RoundTemporalOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RoundTemporalOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1022
 *     """
 * 
 *     def __init__(self, multiple=1, unit="day", *, week_starts_monday=True,             # <<<<<<<<<<<<<<
 *                  ceil_is_strictly_greater=False,
 *                  calendar_based_origin=False):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20RoundTemporalOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20RoundTemporalOptions___init__, "RoundTemporalOptions.__init__(self, multiple=1, unit='day', *, week_starts_monday=True, ceil_is_strictly_greater=False, calendar_based_origin=False)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20RoundTemporalOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20RoundTemporalOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20RoundTemporalOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20RoundTemporalOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_multiple = 0;
  PyObject *__pyx_v_unit = 0;
  PyObject *__pyx_v_week_starts_monday = 0;
  PyObject *__pyx_v_ceil_is_strictly_greater = 0;
  PyObject *__pyx_v_calendar_based_origin = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_multiple,&__pyx_mstate_global->__pyx_n_u_unit,&__pyx_mstate_global->__pyx_n_u_week_starts_monday,&__pyx_mstate_global->__pyx_n_u_ceil_is_strictly_greater,&__pyx_mstate_global->__pyx_n_u_calendar_based_origin,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1022, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1022, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1022, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1022, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1022, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_day)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));

      /* "pyarrow/_compute.pyx":1023
 * 
 *     def __init__(self, multiple=1, unit="day", *, week_starts_monday=True,
 *                  ceil_is_strictly_greater=False,             # <<<<<<<<<<<<<<
 *                  calendar_based_origin=False):
 *         self._set_options(multiple, unit, week_starts_monday,
*/
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));

      /* "pyarrow/_compute.pyx":1024
 *     def __init__(self, multiple=1, unit="day", *, week_starts_monday=True,
 *                  ceil_is_strictly_greater=False,
 *                  calendar_based_origin=False):             # <<<<<<<<<<<<<<
 *         self._set_options(multiple, unit, week_starts_monday,
 *                           ceil_is_strictly_greater,
*/
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(0, 1022, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1022, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1022, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1022, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_day)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_self = values[0];
    __pyx_v_multiple = values[1];
    __pyx_v_unit = values[2];
    __pyx_v_week_starts_monday = values[3];
    __pyx_v_ceil_is_strictly_greater = values[4];
    __pyx_v_calendar_based_origin = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1022, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.RoundTemporalOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20RoundTemporalOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_multiple, __pyx_v_unit, __pyx_v_week_starts_monday, __pyx_v_ceil_is_strictly_greater, __pyx_v_calendar_based_origin);

  /* "pyarrow/_compute.pyx":1022
 *     """
 * 
 *     def __init__(self, multiple=1, unit="day", *, week_starts_monday=True,             # <<<<<<<<<<<<<<
 *                  ceil_is_strictly_greater=False,
 *                  calendar_based_origin=False):
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20RoundTemporalOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_multiple, PyObject *__pyx_v_unit, PyObject *__pyx_v_week_starts_monday, PyObject *__pyx_v_ceil_is_strictly_greater, PyObject *__pyx_v_calendar_based_origin) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1025
 *                  ceil_is_strictly_greater=False,
 *                  calendar_based_origin=False):
 *         self._set_options(multiple, unit, week_starts_monday,             # <<<<<<<<<<<<<<
 *                           ceil_is_strictly_greater,
 *                           calendar_based_origin)
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);

  /* "pyarrow/_compute.pyx":1027
 *         self._set_options(multiple, unit, week_starts_monday,
 *                           ceil_is_strictly_greater,
 *                           calendar_based_origin)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_2, __pyx_v_multiple, __pyx_v_unit, __pyx_v_week_starts_monday, __pyx_v_ceil_is_strictly_greater, __pyx_v_calendar_based_origin};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (6-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1022
 *     """
 * 
 *     def __init__(self, multiple=1, unit="day", *, week_starts_monday=True,             # <<<<<<<<<<<<<<
 *                  ceil_is_strictly_greater=False,
 *                  calendar_based_origin=False):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.RoundTemporalOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1031
 * 
 * cdef class _RoundToMultipleOptions(FunctionOptions):
 *     def _set_options(self, multiple, round_mode):             # <<<<<<<<<<<<<<
 *         if not isinstance(multiple, Scalar):
 *             try:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_23_RoundToMultipleOptions__set_options, "_RoundToMultipleOptions._set_options(self, multiple, round_mode)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_23_RoundToMultipleOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_RoundToMultipleOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_multiple = 0;
  PyObject *__pyx_v_round_mode = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_multiple,&__pyx_mstate_global->__pyx_n_u_round_mode_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1031, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1031, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1031, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1031, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 1031, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1031, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1031, __pyx_L3_error)
    }
    __pyx_v_multiple = values[0];
    __pyx_v_round_mode = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1031, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RoundToMultipleOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_23_RoundToMultipleOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions *)__pyx_v_self), __pyx_v_multiple, __pyx_v_round_mode);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_23_RoundToMultipleOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions *__pyx_v_self, PyObject *__pyx_v_multiple, PyObject *__pyx_v_round_mode) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  size_t __pyx_t_10;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  std::shared_ptr< arrow::Scalar>  __pyx_t_15;
  arrow::compute::RoundMode __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);
  __Pyx_INCREF(__pyx_v_multiple);

  /* "pyarrow/_compute.pyx":1032
 * cdef class _RoundToMultipleOptions(FunctionOptions):
 *     def _set_options(self, multiple, round_mode):
 *         if not isinstance(multiple, Scalar):             # <<<<<<<<<<<<<<
 *             try:
 *                 multiple = lib.scalar(multiple)
*/
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_multiple, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Scalar); 
  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "pyarrow/_compute.pyx":1033
 *     def _set_options(self, multiple, round_mode):
 *         if not isinstance(multiple, Scalar):
 *             try:             # <<<<<<<<<<<<<<
 *                 multiple = lib.scalar(multiple)
 *             except Exception:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      /*try:*/ {

        /* "pyarrow/_compute.pyx":1034
 *         if not isinstance(multiple, Scalar):
 *             try:
 *                 multiple = lib.scalar(multiple)             # <<<<<<<<<<<<<<
 *             except Exception:
 *                 _raise_invalid_function_option(
*/
        __pyx_t_7 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_lib); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1034, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_scalar); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1034, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_10 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
          assert(__pyx_t_7);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
          __pyx_t_10 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_multiple};
          __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1034, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_DECREF_SET(__pyx_v_multiple, __pyx_t_6);
        __pyx_t_6 = 0;

        /* "pyarrow/_compute.pyx":1033
 *     def _set_options(self, multiple, round_mode):
 *         if not isinstance(multiple, Scalar):
 *             try:             # <<<<<<<<<<<<<<
 *                 multiple = lib.scalar(multiple)
 *             except Exception:
*/
      }
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "pyarrow/_compute.pyx":1035
 *             try:
 *                 multiple = lib.scalar(multiple)
 *             except Exception:             # <<<<<<<<<<<<<<
 *                 _raise_invalid_function_option(
 *                     multiple, "multiple type for RoundToMultipleOptions",
*/
      __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
      if (__pyx_t_11) {
        __Pyx_AddTraceback("pyarrow._compute._RoundToMultipleOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 1035, __pyx_L6_except_error)
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_7);

        /* "pyarrow/_compute.pyx":1036
 *                 multiple = lib.scalar(multiple)
 *             except Exception:
 *                 _raise_invalid_function_option(             # <<<<<<<<<<<<<<
 *                     multiple, "multiple type for RoundToMultipleOptions",
 *                     exception_class=TypeError)
*/
        __pyx_t_12 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1036, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_13);

        /* "pyarrow/_compute.pyx":1038
 *                 _raise_invalid_function_option(
 *                     multiple, "multiple type for RoundToMultipleOptions",
 *                     exception_class=TypeError)             # <<<<<<<<<<<<<<
 * 
 *         self.wrapped.reset(
*/
        __pyx_t_10 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_13))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
          assert(__pyx_t_12);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
          __pyx_t_10 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[3 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_12, __pyx_v_multiple, __pyx_mstate_global->__pyx_kp_u_multiple_type_for_RoundToMultipl};
          __pyx_t_14 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1036, __pyx_L6_except_error)
          __Pyx_GOTREF(__pyx_t_14);
          if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_exception_class, ((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_t_14, __pyx_callargs+3, 0) < (0)) __PYX_ERR(0, 1036, __pyx_L6_except_error)
          __pyx_t_8 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_14);
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1036, __pyx_L6_except_error)
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;

      /* "pyarrow/_compute.pyx":1033
 *     def _set_options(self, multiple, round_mode):
 *         if not isinstance(multiple, Scalar):
 *             try:             # <<<<<<<<<<<<<<
 *                 multiple = lib.scalar(multiple)
 *             except Exception:
*/
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
      goto __pyx_L1_error;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
      __pyx_L9_try_end:;
    }

    /* "pyarrow/_compute.pyx":1032
 * cdef class _RoundToMultipleOptions(FunctionOptions):
 *     def _set_options(self, multiple, round_mode):
 *         if not isinstance(multiple, Scalar):             # <<<<<<<<<<<<<<
 *             try:
 *                 multiple = lib.scalar(multiple)
*/
  }

  /* "pyarrow/_compute.pyx":1042
 *         self.wrapped.reset(
 *             new CRoundToMultipleOptions(
 *                 pyarrow_unwrap_scalar(multiple), unwrap_round_mode(round_mode))             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_15 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_scalar(__pyx_v_multiple); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1042, __pyx_L1_error)
  __pyx_t_16 = __pyx_f_7pyarrow_8_compute_unwrap_round_mode(__pyx_v_round_mode); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1042, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1040
 *                     exception_class=TypeError)
 * 
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CRoundToMultipleOptions(
 *                 pyarrow_unwrap_scalar(multiple), unwrap_round_mode(round_mode))
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::RoundToMultipleOptions(__pyx_t_15, __pyx_t_16));

  /* "pyarrow/_compute.pyx":1031
 * 
 * cdef class _RoundToMultipleOptions(FunctionOptions):
 *     def _set_options(self, multiple, round_mode):             # <<<<<<<<<<<<<<
 *         if not isinstance(multiple, Scalar):
 *             try:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pyarrow._compute._RoundToMultipleOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_multiple);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_23_RoundToMultipleOptions_2__reduce_cython__, "_RoundToMultipleOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_23_RoundToMultipleOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_RoundToMultipleOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_23_RoundToMultipleOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_23_RoundToMultipleOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RoundToMultipleOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_23_RoundToMultipleOptions_4__setstate_cython__, "_RoundToMultipleOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_23_RoundToMultipleOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_RoundToMultipleOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RoundToMultipleOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_23_RoundToMultipleOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_23_RoundToMultipleOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RoundToMultipleOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1062
 *     """
 * 
 *     def __init__(self, multiple=1.0, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(multiple, round_mode)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_22RoundToMultipleOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_22RoundToMultipleOptions___init__, "RoundToMultipleOptions.__init__(self, multiple=1.0, round_mode='half_to_even')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_22RoundToMultipleOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22RoundToMultipleOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22RoundToMultipleOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_22RoundToMultipleOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_multiple = 0;
  PyObject *__pyx_v_round_mode = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_multiple,&__pyx_mstate_global->__pyx_n_u_round_mode_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1062, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1062, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1062, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1062, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1062, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_float_1_0)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_half_to_even)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(0, 1062, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1062, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1062, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1062, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_float_1_0)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_half_to_even)));
    }
    __pyx_v_self = values[0];
    __pyx_v_multiple = values[1];
    __pyx_v_round_mode = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1062, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.RoundToMultipleOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_22RoundToMultipleOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_multiple, __pyx_v_round_mode);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_22RoundToMultipleOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_multiple, PyObject *__pyx_v_round_mode) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1063
 * 
 *     def __init__(self, multiple=1.0, round_mode="half_to_even"):
 *         self._set_options(multiple, round_mode)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_multiple, __pyx_v_round_mode};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1063, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1062
 *     """
 * 
 *     def __init__(self, multiple=1.0, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(multiple, round_mode)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.RoundToMultipleOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1073
 *     }
 * 
 *     def _set_options(self, null_handling, null_replacement):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_JoinOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_JoinOptions__set_options, "_JoinOptions._set_options(self, null_handling, null_replacement)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_JoinOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_JoinOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_JoinOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_JoinOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_null_handling = 0;
  PyObject *__pyx_v_null_replacement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_null_handling,&__pyx_mstate_global->__pyx_n_u_null_replacement,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1073, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1073, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1073, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1073, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 1073, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1073, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1073, __pyx_L3_error)
    }
    __pyx_v_null_handling = values[0];
    __pyx_v_null_replacement = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1073, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._JoinOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_JoinOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__JoinOptions *)__pyx_v_self), __pyx_v_null_handling, __pyx_v_null_replacement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_JoinOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__JoinOptions *__pyx_v_self, PyObject *__pyx_v_null_handling, PyObject *__pyx_v_null_replacement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  enum arrow::compute::JoinOptions::NullHandlingBehavior __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  std::string __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1074
 * 
 *     def _set_options(self, null_handling, null_replacement):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CJoinOptions(self._null_handling_map[null_handling],
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "pyarrow/_compute.pyx":1076
 *         try:
 *             self.wrapped.reset(
 *                 new CJoinOptions(self._null_handling_map[null_handling],             # <<<<<<<<<<<<<<
 *                                  tobytes(null_replacement))
 *             )
*/
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_null_handling_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1076, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_null_handling); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1076, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = ((enum arrow::compute::JoinOptions::NullHandlingBehavior)__Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_JoinOptions_3a__3a_NullHandlingBehavior(__pyx_t_5)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1076, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "pyarrow/_compute.pyx":1077
 *             self.wrapped.reset(
 *                 new CJoinOptions(self._null_handling_map[null_handling],
 *                                  tobytes(null_replacement))             # <<<<<<<<<<<<<<
 *             )
 *         except KeyError:
*/
      __pyx_t_4 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1077, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7);
        assert(__pyx_t_4);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_null_replacement};
        __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1077, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_5);
      }
      __pyx_t_9 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_5); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1077, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "pyarrow/_compute.pyx":1075
 *     def _set_options(self, null_handling, null_replacement):
 *         try:
 *             self.wrapped.reset(             # <<<<<<<<<<<<<<
 *                 new CJoinOptions(self._null_handling_map[null_handling],
 *                                  tobytes(null_replacement))
*/
      __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::JoinOptions(__pyx_t_6, __pyx_t_9));

      /* "pyarrow/_compute.pyx":1074
 * 
 *     def _set_options(self, null_handling, null_replacement):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CJoinOptions(self._null_handling_map[null_handling],
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "pyarrow/_compute.pyx":1079
 *                                  tobytes(null_replacement))
 *             )
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(null_handling, "null handling")
 * 
*/
    __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_10) {
      __Pyx_AddTraceback("pyarrow._compute._JoinOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_4) < 0) __PYX_ERR(0, 1079, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_4);

      /* "pyarrow/_compute.pyx":1080
 *             )
 *         except KeyError:
 *             _raise_invalid_function_option(null_handling, "null handling")             # <<<<<<<<<<<<<<
 * 
 * 
*/
      __pyx_t_12 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1080, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_8 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        assert(__pyx_t_12);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
        __pyx_t_8 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_v_null_handling, __pyx_mstate_global->__pyx_kp_u_null_handling_2};
        __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1080, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "pyarrow/_compute.pyx":1074
 * 
 *     def _set_options(self, null_handling, null_replacement):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CJoinOptions(self._null_handling_map[null_handling],
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "pyarrow/_compute.pyx":1073
 *     }
 * 
 *     def _set_options(self, null_handling, null_replacement):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("pyarrow._compute._JoinOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_JoinOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_JoinOptions_2__reduce_cython__, "_JoinOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_JoinOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_JoinOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_JoinOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_JoinOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_JoinOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__JoinOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_JoinOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__JoinOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._JoinOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_JoinOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_JoinOptions_4__setstate_cython__, "_JoinOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_JoinOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_JoinOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_JoinOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_JoinOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._JoinOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_JoinOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__JoinOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_JoinOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__JoinOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._JoinOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1097
 *     """
 * 
 *     def __init__(self, null_handling="emit_null", null_replacement=""):             # <<<<<<<<<<<<<<
 *         self._set_options(null_handling, null_replacement)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11JoinOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11JoinOptions___init__, "JoinOptions.__init__(self, null_handling='emit_null', null_replacement='')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11JoinOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11JoinOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11JoinOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11JoinOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_null_handling = 0;
  PyObject *__pyx_v_null_replacement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_null_handling,&__pyx_mstate_global->__pyx_n_u_null_replacement,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1097, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1097, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1097, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1097, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1097, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_emit_null)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_kp_u__3)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(0, 1097, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1097, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1097, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1097, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_emit_null)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_kp_u__3)));
    }
    __pyx_v_self = values[0];
    __pyx_v_null_handling = values[1];
    __pyx_v_null_replacement = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1097, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.JoinOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11JoinOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_null_handling, __pyx_v_null_replacement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11JoinOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_null_handling, PyObject *__pyx_v_null_replacement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1098
 * 
 *     def __init__(self, null_handling="emit_null", null_replacement=""):
 *         self._set_options(null_handling, null_replacement)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_null_handling, __pyx_v_null_replacement};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1098, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1097
 *     """
 * 
 *     def __init__(self, null_handling="emit_null", null_replacement=""):             # <<<<<<<<<<<<<<
 *         self._set_options(null_handling, null_replacement)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.JoinOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1102
 * 
 * cdef class _MatchSubstringOptions(FunctionOptions):
 *     def _set_options(self, pattern, ignore_case):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CMatchSubstringOptions(tobytes(pattern), ignore_case)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_22_MatchSubstringOptions__set_options, "_MatchSubstringOptions._set_options(self, pattern, ignore_case)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_22_MatchSubstringOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_MatchSubstringOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_pattern = 0;
  PyObject *__pyx_v_ignore_case = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pattern,&__pyx_mstate_global->__pyx_n_u_ignore_case,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1102, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1102, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1102, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1102, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 1102, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1102, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1102, __pyx_L3_error)
    }
    __pyx_v_pattern = values[0];
    __pyx_v_ignore_case = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1102, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._MatchSubstringOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_22_MatchSubstringOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions *)__pyx_v_self), __pyx_v_pattern, __pyx_v_ignore_case);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_22_MatchSubstringOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_ignore_case) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  std::string __pyx_t_5;
  bool __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1104
 *     def _set_options(self, pattern, ignore_case):
 *         self.wrapped.reset(
 *             new CMatchSubstringOptions(tobytes(pattern), ignore_case)             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_pattern};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1104, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_case); if (unlikely((__pyx_t_6 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1104, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1103
 * cdef class _MatchSubstringOptions(FunctionOptions):
 *     def _set_options(self, pattern, ignore_case):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CMatchSubstringOptions(tobytes(pattern), ignore_case)
 *         )
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::MatchSubstringOptions(__pyx_t_5, __pyx_t_6));

  /* "pyarrow/_compute.pyx":1102
 * 
 * cdef class _MatchSubstringOptions(FunctionOptions):
 *     def _set_options(self, pattern, ignore_case):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CMatchSubstringOptions(tobytes(pattern), ignore_case)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._MatchSubstringOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_22_MatchSubstringOptions_2__reduce_cython__, "_MatchSubstringOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_22_MatchSubstringOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_MatchSubstringOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_22_MatchSubstringOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_22_MatchSubstringOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._MatchSubstringOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_22_MatchSubstringOptions_4__setstate_cython__, "_MatchSubstringOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_22_MatchSubstringOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_MatchSubstringOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._MatchSubstringOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_22_MatchSubstringOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_22_MatchSubstringOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._MatchSubstringOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1120
 *     """
 * 
 *     def __init__(self, pattern, *, ignore_case=False):             # <<<<<<<<<<<<<<
 *         self._set_options(pattern, ignore_case)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21MatchSubstringOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_21MatchSubstringOptions___init__, "MatchSubstringOptions.__init__(self, pattern, *, ignore_case=False)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_21MatchSubstringOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21MatchSubstringOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21MatchSubstringOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_21MatchSubstringOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_pattern = 0;
  PyObject *__pyx_v_ignore_case = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_pattern,&__pyx_mstate_global->__pyx_n_u_ignore_case,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1120, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1120, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1120, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1120, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 1120, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1120, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1120, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_self = values[0];
    __pyx_v_pattern = values[1];
    __pyx_v_ignore_case = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1120, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.MatchSubstringOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21MatchSubstringOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_pattern, __pyx_v_ignore_case);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21MatchSubstringOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_ignore_case) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1121
 * 
 *     def __init__(self, pattern, *, ignore_case=False):
 *         self._set_options(pattern, ignore_case)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_pattern, __pyx_v_ignore_case};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1120
 *     """
 * 
 *     def __init__(self, pattern, *, ignore_case=False):             # <<<<<<<<<<<<<<
 *         self._set_options(pattern, ignore_case)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.MatchSubstringOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1125
 * 
 * cdef class _PadOptions(FunctionOptions):
 *     def _set_options(self, width, padding, lean_left_on_odd_padding):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CPadOptions(width, tobytes(padding), lean_left_on_odd_padding))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11_PadOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11_PadOptions__set_options, "_PadOptions._set_options(self, width, padding, lean_left_on_odd_padding)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11_PadOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11_PadOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11_PadOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_11_PadOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_padding = 0;
  PyObject *__pyx_v_lean_left_on_odd_padding = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_width,&__pyx_mstate_global->__pyx_n_u_padding,&__pyx_mstate_global->__pyx_n_u_lean_left_on_odd_padding,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1125, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1125, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1125, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1125, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1125, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 1125, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1125, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1125, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1125, __pyx_L3_error)
    }
    __pyx_v_width = values[0];
    __pyx_v_padding = values[1];
    __pyx_v_lean_left_on_odd_padding = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1125, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._PadOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11_PadOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__PadOptions *)__pyx_v_self), __pyx_v_width, __pyx_v_padding, __pyx_v_lean_left_on_odd_padding);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11_PadOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__PadOptions *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_padding, PyObject *__pyx_v_lean_left_on_odd_padding) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  std::string __pyx_t_6;
  bool __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1126
 * cdef class _PadOptions(FunctionOptions):
 *     def _set_options(self, width, padding, lean_left_on_odd_padding):
 *         self.wrapped.reset(new CPadOptions(width, tobytes(padding), lean_left_on_odd_padding))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int64_t(__pyx_v_width); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1126, __pyx_L1_error)
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_padding};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1126, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_t_6 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_lean_left_on_odd_padding); if (unlikely((__pyx_t_7 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1126, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::PadOptions(__pyx_t_1, __pyx_t_6, __pyx_t_7));

  /* "pyarrow/_compute.pyx":1125
 * 
 * cdef class _PadOptions(FunctionOptions):
 *     def _set_options(self, width, padding, lean_left_on_odd_padding):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CPadOptions(width, tobytes(padding), lean_left_on_odd_padding))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute._PadOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11_PadOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11_PadOptions_2__reduce_cython__, "_PadOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11_PadOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11_PadOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11_PadOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11_PadOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11_PadOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__PadOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11_PadOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PadOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._PadOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11_PadOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11_PadOptions_4__setstate_cython__, "_PadOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11_PadOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11_PadOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11_PadOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11_PadOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._PadOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11_PadOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__PadOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11_PadOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PadOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._PadOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1145
 *     """
 * 
 *     def __init__(self, width, padding=' ', lean_left_on_odd_padding=True):             # <<<<<<<<<<<<<<
 *         self._set_options(width, padding, lean_left_on_odd_padding)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10PadOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10PadOptions___init__, "PadOptions.__init__(self, width, padding=' ', lean_left_on_odd_padding=True)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10PadOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10PadOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10PadOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_10PadOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_padding = 0;
  PyObject *__pyx_v_lean_left_on_odd_padding = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_width,&__pyx_mstate_global->__pyx_n_u_padding,&__pyx_mstate_global->__pyx_n_u_lean_left_on_odd_padding,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1145, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1145, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1145, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1145, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1145, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1145, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_kp_u__8)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(0, 1145, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1145, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1145, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1145, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1145, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_kp_u__8)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
    }
    __pyx_v_self = values[0];
    __pyx_v_width = values[1];
    __pyx_v_padding = values[2];
    __pyx_v_lean_left_on_odd_padding = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 1145, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.PadOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10PadOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_width, __pyx_v_padding, __pyx_v_lean_left_on_odd_padding);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10PadOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_padding, PyObject *__pyx_v_lean_left_on_odd_padding) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1146
 * 
 *     def __init__(self, width, padding=' ', lean_left_on_odd_padding=True):
 *         self._set_options(width, padding, lean_left_on_odd_padding)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_width, __pyx_v_padding, __pyx_v_lean_left_on_odd_padding};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1145
 *     """
 * 
 *     def __init__(self, width, padding=' ', lean_left_on_odd_padding=True):             # <<<<<<<<<<<<<<
 *         self._set_options(width, padding, lean_left_on_odd_padding)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.PadOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1150
 * 
 * cdef class _ZeroFillOptions(FunctionOptions):
 *     def _set_options(self, width, padding):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CZeroFillOptions(width, tobytes(padding)))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_ZeroFillOptions__set_options, "_ZeroFillOptions._set_options(self, width, padding)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_ZeroFillOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_ZeroFillOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_padding = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_width,&__pyx_mstate_global->__pyx_n_u_padding,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1150, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1150, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1150, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1150, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 1150, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1150, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1150, __pyx_L3_error)
    }
    __pyx_v_width = values[0];
    __pyx_v_padding = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1150, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ZeroFillOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_ZeroFillOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions *)__pyx_v_self), __pyx_v_width, __pyx_v_padding);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_ZeroFillOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_padding) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  std::string __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1151
 * cdef class _ZeroFillOptions(FunctionOptions):
 *     def _set_options(self, width, padding):
 *         self.wrapped.reset(new CZeroFillOptions(width, tobytes(padding)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int64_t(__pyx_v_width); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1151, __pyx_L1_error)
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_padding};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_t_6 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1151, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::ZeroFillOptions(__pyx_t_1, __pyx_t_6));

  /* "pyarrow/_compute.pyx":1150
 * 
 * cdef class _ZeroFillOptions(FunctionOptions):
 *     def _set_options(self, width, padding):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CZeroFillOptions(width, tobytes(padding)))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute._ZeroFillOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_ZeroFillOptions_2__reduce_cython__, "_ZeroFillOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_ZeroFillOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_ZeroFillOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_ZeroFillOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_ZeroFillOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ZeroFillOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_ZeroFillOptions_4__setstate_cython__, "_ZeroFillOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_ZeroFillOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_ZeroFillOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ZeroFillOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_ZeroFillOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_ZeroFillOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ZeroFillOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1175
 *     """
 * 
 *     def __init__(self, width, padding='0'):             # <<<<<<<<<<<<<<
 *         self._set_options(width, padding)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15ZeroFillOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15ZeroFillOptions___init__, "ZeroFillOptions.__init__(self, width, padding='0')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15ZeroFillOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15ZeroFillOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15ZeroFillOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15ZeroFillOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_width = 0;
  PyObject *__pyx_v_padding = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_width,&__pyx_mstate_global->__pyx_n_u_padding,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1175, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1175, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1175, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1175, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1175, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_kp_u_0)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(0, 1175, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1175, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1175, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1175, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_kp_u_0)));
    }
    __pyx_v_self = values[0];
    __pyx_v_width = values[1];
    __pyx_v_padding = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 1175, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ZeroFillOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15ZeroFillOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_width, __pyx_v_padding);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15ZeroFillOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_width, PyObject *__pyx_v_padding) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1176
 * 
 *     def __init__(self, width, padding='0'):
 *         self._set_options(width, padding)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_width, __pyx_v_padding};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1175
 *     """
 * 
 *     def __init__(self, width, padding='0'):             # <<<<<<<<<<<<<<
 *         self._set_options(width, padding)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.ZeroFillOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1180
 * 
 * cdef class _TrimOptions(FunctionOptions):
 *     def _set_options(self, characters):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CTrimOptions(tobytes(characters)))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TrimOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_TrimOptions__set_options, "_TrimOptions._set_options(self, characters)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_TrimOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TrimOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TrimOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TrimOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_characters = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_characters,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1180, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1180, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1180, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1180, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1180, __pyx_L3_error)
    }
    __pyx_v_characters = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1180, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._TrimOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_TrimOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__TrimOptions *)__pyx_v_self), __pyx_v_characters);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_TrimOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__TrimOptions *__pyx_v_self, PyObject *__pyx_v_characters) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  std::string __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1181
 * cdef class _TrimOptions(FunctionOptions):
 *     def _set_options(self, characters):
 *         self.wrapped.reset(new CTrimOptions(tobytes(characters)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_characters};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1181, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1181, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::TrimOptions(__pyx_t_5));

  /* "pyarrow/_compute.pyx":1180
 * 
 * cdef class _TrimOptions(FunctionOptions):
 *     def _set_options(self, characters):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CTrimOptions(tobytes(characters)))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._TrimOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TrimOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_TrimOptions_2__reduce_cython__, "_TrimOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_TrimOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TrimOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TrimOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TrimOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_TrimOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__TrimOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_TrimOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TrimOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._TrimOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TrimOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_TrimOptions_4__setstate_cython__, "_TrimOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_TrimOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TrimOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TrimOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TrimOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._TrimOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_TrimOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__TrimOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_TrimOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TrimOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._TrimOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1194
 *     """
 * 
 *     def __init__(self, characters):             # <<<<<<<<<<<<<<
 *         self._set_options(tobytes(characters))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11TrimOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11TrimOptions___init__, "TrimOptions.__init__(self, characters)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11TrimOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11TrimOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11TrimOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11TrimOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_characters = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_characters,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1194, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1194, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1194, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1194, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 1194, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1194, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1194, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_characters = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1194, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.TrimOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11TrimOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_characters);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11TrimOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_characters) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1195
 * 
 *     def __init__(self, characters):
 *         self._set_options(tobytes(characters))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_characters};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1195, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1194
 *     """
 * 
 *     def __init__(self, characters):             # <<<<<<<<<<<<<<
 *         self._set_options(tobytes(characters))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pyarrow._compute.TrimOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1199
 * 
 * cdef class _ReplaceSubstringOptions(FunctionOptions):
 *     def _set_options(self, pattern, replacement, max_replacements):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CReplaceSubstringOptions(tobytes(pattern),
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_24_ReplaceSubstringOptions__set_options, "_ReplaceSubstringOptions._set_options(self, pattern, replacement, max_replacements)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_24_ReplaceSubstringOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ReplaceSubstringOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_pattern = 0;
  PyObject *__pyx_v_replacement = 0;
  PyObject *__pyx_v_max_replacements = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pattern,&__pyx_mstate_global->__pyx_n_u_replacement,&__pyx_mstate_global->__pyx_n_u_max_replacements,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1199, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1199, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1199, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1199, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1199, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 1199, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1199, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1199, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1199, __pyx_L3_error)
    }
    __pyx_v_pattern = values[0];
    __pyx_v_replacement = values[1];
    __pyx_v_max_replacements = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1199, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ReplaceSubstringOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_24_ReplaceSubstringOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions *)__pyx_v_self), __pyx_v_pattern, __pyx_v_replacement, __pyx_v_max_replacements);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_24_ReplaceSubstringOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_replacement, PyObject *__pyx_v_max_replacements) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  std::string __pyx_t_5;
  std::string __pyx_t_6;
  int64_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1201
 *     def _set_options(self, pattern, replacement, max_replacements):
 *         self.wrapped.reset(
 *             new CReplaceSubstringOptions(tobytes(pattern),             # <<<<<<<<<<<<<<
 *                                          tobytes(replacement),
 *                                          max_replacements)
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_pattern};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1202
 *         self.wrapped.reset(
 *             new CReplaceSubstringOptions(tobytes(pattern),
 *                                          tobytes(replacement),             # <<<<<<<<<<<<<<
 *                                          max_replacements)
 *         )
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_replacement};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1203
 *             new CReplaceSubstringOptions(tobytes(pattern),
 *                                          tobytes(replacement),
 *                                          max_replacements)             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_7 = __Pyx_PyLong_As_int64_t(__pyx_v_max_replacements); if (unlikely((__pyx_t_7 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1203, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1200
 * cdef class _ReplaceSubstringOptions(FunctionOptions):
 *     def _set_options(self, pattern, replacement, max_replacements):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CReplaceSubstringOptions(tobytes(pattern),
 *                                          tobytes(replacement),
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::ReplaceSubstringOptions(__pyx_t_5, __pyx_t_6, __pyx_t_7));

  /* "pyarrow/_compute.pyx":1199
 * 
 * cdef class _ReplaceSubstringOptions(FunctionOptions):
 *     def _set_options(self, pattern, replacement, max_replacements):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CReplaceSubstringOptions(tobytes(pattern),
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._ReplaceSubstringOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_24_ReplaceSubstringOptions_2__reduce_cython__, "_ReplaceSubstringOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_24_ReplaceSubstringOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ReplaceSubstringOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_24_ReplaceSubstringOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_24_ReplaceSubstringOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ReplaceSubstringOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_24_ReplaceSubstringOptions_4__setstate_cython__, "_ReplaceSubstringOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_24_ReplaceSubstringOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ReplaceSubstringOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ReplaceSubstringOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_24_ReplaceSubstringOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_24_ReplaceSubstringOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ReplaceSubstringOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1222
 *     """
 * 
 *     def __init__(self, pattern, replacement, *, max_replacements=None):             # <<<<<<<<<<<<<<
 *         if max_replacements is None:
 *             max_replacements = -1
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_23ReplaceSubstringOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_23ReplaceSubstringOptions___init__, "ReplaceSubstringOptions.__init__(self, pattern, replacement, *, max_replacements=None)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_23ReplaceSubstringOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23ReplaceSubstringOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23ReplaceSubstringOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_23ReplaceSubstringOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_pattern = 0;
  PyObject *__pyx_v_replacement = 0;
  PyObject *__pyx_v_max_replacements = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_pattern,&__pyx_mstate_global->__pyx_n_u_replacement,&__pyx_mstate_global->__pyx_n_u_max_replacements,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1222, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1222, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1222, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1222, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1222, __pyx_L3_error)
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(0, 1222, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1222, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1222, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1222, __pyx_L3_error)
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_self = values[0];
    __pyx_v_pattern = values[1];
    __pyx_v_replacement = values[2];
    __pyx_v_max_replacements = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1222, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ReplaceSubstringOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_23ReplaceSubstringOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_pattern, __pyx_v_replacement, __pyx_v_max_replacements);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_23ReplaceSubstringOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_replacement, PyObject *__pyx_v_max_replacements) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v_max_replacements);

  /* "pyarrow/_compute.pyx":1223
 * 
 *     def __init__(self, pattern, replacement, *, max_replacements=None):
 *         if max_replacements is None:             # <<<<<<<<<<<<<<
 *             max_replacements = -1
 *         self._set_options(pattern, replacement, max_replacements)
*/
  __pyx_t_1 = (__pyx_v_max_replacements == Py_None);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1224
 *     def __init__(self, pattern, replacement, *, max_replacements=None):
 *         if max_replacements is None:
 *             max_replacements = -1             # <<<<<<<<<<<<<<
 *         self._set_options(pattern, replacement, max_replacements)
 * 
*/
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_neg_1);
    __Pyx_DECREF_SET(__pyx_v_max_replacements, __pyx_mstate_global->__pyx_int_neg_1);

    /* "pyarrow/_compute.pyx":1223
 * 
 *     def __init__(self, pattern, replacement, *, max_replacements=None):
 *         if max_replacements is None:             # <<<<<<<<<<<<<<
 *             max_replacements = -1
 *         self._set_options(pattern, replacement, max_replacements)
*/
  }

  /* "pyarrow/_compute.pyx":1225
 *         if max_replacements is None:
 *             max_replacements = -1
 *         self._set_options(pattern, replacement, max_replacements)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_v_pattern, __pyx_v_replacement, __pyx_v_max_replacements};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1222
 *     """
 * 
 *     def __init__(self, pattern, replacement, *, max_replacements=None):             # <<<<<<<<<<<<<<
 *         if max_replacements is None:
 *             max_replacements = -1
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.ReplaceSubstringOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_max_replacements);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1229
 * 
 * cdef class _ExtractRegexOptions(FunctionOptions):
 *     def _set_options(self, pattern):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CExtractRegexOptions(tobytes(pattern)))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_ExtractRegexOptions__set_options, "_ExtractRegexOptions._set_options(self, pattern)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_ExtractRegexOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ExtractRegexOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_pattern = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pattern,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1229, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1229, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1229, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1229, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1229, __pyx_L3_error)
    }
    __pyx_v_pattern = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1229, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ExtractRegexOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_ExtractRegexOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions *)__pyx_v_self), __pyx_v_pattern);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_ExtractRegexOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions *__pyx_v_self, PyObject *__pyx_v_pattern) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  std::string __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1230
 * cdef class _ExtractRegexOptions(FunctionOptions):
 *     def _set_options(self, pattern):
 *         self.wrapped.reset(new CExtractRegexOptions(tobytes(pattern)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1230, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_pattern};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1230, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::ExtractRegexOptions(__pyx_t_5));

  /* "pyarrow/_compute.pyx":1229
 * 
 * cdef class _ExtractRegexOptions(FunctionOptions):
 *     def _set_options(self, pattern):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CExtractRegexOptions(tobytes(pattern)))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._ExtractRegexOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_ExtractRegexOptions_2__reduce_cython__, "_ExtractRegexOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_ExtractRegexOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ExtractRegexOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_ExtractRegexOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_ExtractRegexOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ExtractRegexOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_ExtractRegexOptions_4__setstate_cython__, "_ExtractRegexOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_ExtractRegexOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ExtractRegexOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ExtractRegexOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_ExtractRegexOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_ExtractRegexOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ExtractRegexOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1243
 *     """
 * 
 *     def __init__(self, pattern):             # <<<<<<<<<<<<<<
 *         self._set_options(pattern)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19ExtractRegexOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19ExtractRegexOptions___init__, "ExtractRegexOptions.__init__(self, pattern)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19ExtractRegexOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19ExtractRegexOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19ExtractRegexOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19ExtractRegexOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_pattern = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_pattern,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1243, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1243, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1243, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1243, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 1243, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1243, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1243, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_pattern = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1243, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ExtractRegexOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19ExtractRegexOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_pattern);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19ExtractRegexOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pattern) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1244
 * 
 *     def __init__(self, pattern):
 *         self._set_options(pattern)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_pattern};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1244, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1243
 *     """
 * 
 *     def __init__(self, pattern):             # <<<<<<<<<<<<<<
 *         self._set_options(pattern)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.ExtractRegexOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1248
 * 
 * cdef class _ExtractRegexSpanOptions(FunctionOptions):
 *     def _set_options(self, pattern):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CExtractRegexSpanOptions(tobytes(pattern)))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_24_ExtractRegexSpanOptions__set_options, "_ExtractRegexSpanOptions._set_options(self, pattern)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_24_ExtractRegexSpanOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ExtractRegexSpanOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_pattern = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pattern,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1248, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1248, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1248, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1248, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1248, __pyx_L3_error)
    }
    __pyx_v_pattern = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1248, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ExtractRegexSpanOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_24_ExtractRegexSpanOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions *)__pyx_v_self), __pyx_v_pattern);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_24_ExtractRegexSpanOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions *__pyx_v_self, PyObject *__pyx_v_pattern) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  std::string __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1249
 * cdef class _ExtractRegexSpanOptions(FunctionOptions):
 *     def _set_options(self, pattern):
 *         self.wrapped.reset(new CExtractRegexSpanOptions(tobytes(pattern)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_pattern};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1249, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1249, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::ExtractRegexSpanOptions(__pyx_t_5));

  /* "pyarrow/_compute.pyx":1248
 * 
 * cdef class _ExtractRegexSpanOptions(FunctionOptions):
 *     def _set_options(self, pattern):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CExtractRegexSpanOptions(tobytes(pattern)))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._ExtractRegexSpanOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_24_ExtractRegexSpanOptions_2__reduce_cython__, "_ExtractRegexSpanOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_24_ExtractRegexSpanOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ExtractRegexSpanOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_24_ExtractRegexSpanOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_24_ExtractRegexSpanOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ExtractRegexSpanOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_24_ExtractRegexSpanOptions_4__setstate_cython__, "_ExtractRegexSpanOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_24_ExtractRegexSpanOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ExtractRegexSpanOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ExtractRegexSpanOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_24_ExtractRegexSpanOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_24_ExtractRegexSpanOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ExtractRegexSpanOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1262
 *     """
 * 
 *     def __init__(self, pattern):             # <<<<<<<<<<<<<<
 *         self._set_options(pattern)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_23ExtractRegexSpanOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_23ExtractRegexSpanOptions___init__, "ExtractRegexSpanOptions.__init__(self, pattern)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_23ExtractRegexSpanOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23ExtractRegexSpanOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23ExtractRegexSpanOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_23ExtractRegexSpanOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_pattern = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_pattern,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1262, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1262, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1262, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1262, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 1262, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1262, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1262, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_pattern = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1262, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ExtractRegexSpanOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_23ExtractRegexSpanOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_pattern);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_23ExtractRegexSpanOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pattern) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1263
 * 
 *     def __init__(self, pattern):
 *         self._set_options(pattern)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_pattern};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1262
 *     """
 * 
 *     def __init__(self, pattern):             # <<<<<<<<<<<<<<
 *         self._set_options(pattern)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.ExtractRegexSpanOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1267
 * 
 * cdef class _SliceOptions(FunctionOptions):
 *     def _set_options(self, start, stop, step):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSliceOptions(start, stop, step))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SliceOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_SliceOptions__set_options, "_SliceOptions._set_options(self, start, stop, step)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_SliceOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SliceOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SliceOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SliceOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_start = 0;
  PyObject *__pyx_v_stop = 0;
  PyObject *__pyx_v_step = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_start,&__pyx_mstate_global->__pyx_n_u_stop,&__pyx_mstate_global->__pyx_n_u_step,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1267, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1267, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1267, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1267, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1267, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 1267, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1267, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1267, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1267, __pyx_L3_error)
    }
    __pyx_v_start = values[0];
    __pyx_v_stop = values[1];
    __pyx_v_step = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1267, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SliceOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_SliceOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__SliceOptions *)__pyx_v_self), __pyx_v_start, __pyx_v_stop, __pyx_v_step);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_SliceOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SliceOptions *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_step) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
  int64_t __pyx_t_2;
  int64_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1268
 * cdef class _SliceOptions(FunctionOptions):
 *     def _set_options(self, start, stop, step):
 *         self.wrapped.reset(new CSliceOptions(start, stop, step))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int64_t(__pyx_v_start); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1268, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyLong_As_int64_t(__pyx_v_stop); if (unlikely((__pyx_t_2 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1268, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyLong_As_int64_t(__pyx_v_step); if (unlikely((__pyx_t_3 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1268, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::SliceOptions(__pyx_t_1, __pyx_t_2, __pyx_t_3));

  /* "pyarrow/_compute.pyx":1267
 * 
 * cdef class _SliceOptions(FunctionOptions):
 *     def _set_options(self, start, stop, step):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSliceOptions(start, stop, step))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SliceOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SliceOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_SliceOptions_2__reduce_cython__, "_SliceOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_SliceOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SliceOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SliceOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SliceOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_SliceOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__SliceOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_SliceOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SliceOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SliceOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SliceOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_SliceOptions_4__setstate_cython__, "_SliceOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_SliceOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SliceOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SliceOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SliceOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SliceOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_SliceOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__SliceOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_SliceOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SliceOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SliceOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1286
 *     """
 * 
 *     def __init__(self, start, stop=None, step=1):             # <<<<<<<<<<<<<<
 *         if stop is None:
 *             stop = sys.maxsize
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12SliceOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12SliceOptions___init__, "SliceOptions.__init__(self, start, stop=None, step=1)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12SliceOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12SliceOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12SliceOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12SliceOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_start = 0;
  PyObject *__pyx_v_stop = 0;
  PyObject *__pyx_v_step = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_start,&__pyx_mstate_global->__pyx_n_u_stop,&__pyx_mstate_global->__pyx_n_u_step,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1286, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1286, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1286, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1286, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1286, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1286, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(0, 1286, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1286, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1286, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1286, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1286, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
    }
    __pyx_v_self = values[0];
    __pyx_v_start = values[1];
    __pyx_v_stop = values[2];
    __pyx_v_step = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 1286, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.SliceOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12SliceOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_start, __pyx_v_stop, __pyx_v_step);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12SliceOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_step) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v_stop);

  /* "pyarrow/_compute.pyx":1287
 * 
 *     def __init__(self, start, stop=None, step=1):
 *         if stop is None:             # <<<<<<<<<<<<<<
 *             stop = sys.maxsize
 *             if step < 0:
*/
  __pyx_t_1 = (__pyx_v_stop == Py_None);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1288
 *     def __init__(self, start, stop=None, step=1):
 *         if stop is None:
 *             stop = sys.maxsize             # <<<<<<<<<<<<<<
 *             if step < 0:
 *                 stop = -stop
*/
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_maxsize); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1288, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "pyarrow/_compute.pyx":1289
 *         if stop is None:
 *             stop = sys.maxsize
 *             if step < 0:             # <<<<<<<<<<<<<<
 *                 stop = -stop
 *         self._set_options(start, stop, step)
*/
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_step, __pyx_mstate_global->__pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1289, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1289, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_1) {

      /* "pyarrow/_compute.pyx":1290
 *             stop = sys.maxsize
 *             if step < 0:
 *                 stop = -stop             # <<<<<<<<<<<<<<
 *         self._set_options(start, stop, step)
 * 
*/
      __pyx_t_3 = PyNumber_Negative(__pyx_v_stop); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1290, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_3);
      __pyx_t_3 = 0;

      /* "pyarrow/_compute.pyx":1289
 *         if stop is None:
 *             stop = sys.maxsize
 *             if step < 0:             # <<<<<<<<<<<<<<
 *                 stop = -stop
 *         self._set_options(start, stop, step)
*/
    }

    /* "pyarrow/_compute.pyx":1287
 * 
 *     def __init__(self, start, stop=None, step=1):
 *         if stop is None:             # <<<<<<<<<<<<<<
 *             stop = sys.maxsize
 *             if step < 0:
*/
  }

  /* "pyarrow/_compute.pyx":1291
 *             if step < 0:
 *                 stop = -stop
 *         self._set_options(start, stop, step)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_start, __pyx_v_stop, __pyx_v_step};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1291, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":1286
 *     """
 * 
 *     def __init__(self, start, stop=None, step=1):             # <<<<<<<<<<<<<<
 *         if stop is None:
 *             stop = sys.maxsize
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.SliceOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stop);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1295
 * 
 * cdef class _ListSliceOptions(FunctionOptions):
 *     cpdef _set_options(self, start, stop=None, step=1, return_fixed_size_list=None):             # <<<<<<<<<<<<<<
 *         cdef:
 *             CListSliceOptions* opts
*/

static PyObject *__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_7pyarrow_8_compute_17_ListSliceOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *__pyx_v_self, PyObject *__pyx_v_start, int __pyx_skip_dispatch, struct __pyx_opt_args_7pyarrow_8_compute_17_ListSliceOptions__set_options *__pyx_optional_args) {
  PyObject *__pyx_v_stop = ((PyObject *)Py_None);
  PyObject *__pyx_v_step = ((PyObject *)__pyx_mstate_global->__pyx_int_1);
  PyObject *__pyx_v_return_fixed_size_list = ((PyObject *)Py_None);
  arrow::compute::ListSliceOptions *__pyx_v_opts;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int64_t __pyx_t_6;
  std::optional<int64_t>  __pyx_t_7;
  int __pyx_t_8;
  int64_t __pyx_t_9;
  std::optional<bool>  __pyx_t_10;
  bool __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_stop = __pyx_optional_args->stop;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_step = __pyx_optional_args->step;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_return_fixed_size_list = __pyx_optional_args->return_fixed_size_list;
        }
      }
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (
  #if !CYTHON_USE_TYPE_SLOTS
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self)) != __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions &&
  __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), Py_TPFLAGS_HAVE_GC))
  #else
  unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0 || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))
  #endif
  ) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_set_options); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void(*)(void)) __pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_1_set_options)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = NULL;
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; 
        __pyx_t_5 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          assert(__pyx_t_3);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
          __pyx_t_5 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_return_fixed_size_list};
          __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1295, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pyarrow/_compute.pyx":1299
 *             CListSliceOptions* opts
 *         opts = new CListSliceOptions(
 *             start,             # <<<<<<<<<<<<<<
 *             <optional[int64_t]>nullopt if stop is None
 *             else <optional[int64_t]>(<int64_t>stop),
*/
  __pyx_t_6 = __Pyx_PyLong_As_int64_t(__pyx_v_start); if (unlikely((__pyx_t_6 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1299, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1300
 *         opts = new CListSliceOptions(
 *             start,
 *             <optional[int64_t]>nullopt if stop is None             # <<<<<<<<<<<<<<
 *             else <optional[int64_t]>(<int64_t>stop),
 *             step,
*/
  __pyx_t_8 = (__pyx_v_stop == Py_None);
  if (__pyx_t_8) {
    __pyx_t_7 = ((std::optional<int64_t> )std::nullopt);
  } else {

    /* "pyarrow/_compute.pyx":1301
 *             start,
 *             <optional[int64_t]>nullopt if stop is None
 *             else <optional[int64_t]>(<int64_t>stop),             # <<<<<<<<<<<<<<
 *             step,
 *             <optional[c_bool]>nullopt if return_fixed_size_list is None
*/
    __pyx_t_9 = __Pyx_PyLong_As_int64_t(__pyx_v_stop); if (unlikely((__pyx_t_9 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1301, __pyx_L1_error)
    __pyx_t_7 = ((std::optional<int64_t> )((int64_t)__pyx_t_9));
  }

  /* "pyarrow/_compute.pyx":1302
 *             <optional[int64_t]>nullopt if stop is None
 *             else <optional[int64_t]>(<int64_t>stop),
 *             step,             # <<<<<<<<<<<<<<
 *             <optional[c_bool]>nullopt if return_fixed_size_list is None
 *             else <optional[c_bool]>(<c_bool>return_fixed_size_list)
*/
  __pyx_t_9 = __Pyx_PyLong_As_int64_t(__pyx_v_step); if (unlikely((__pyx_t_9 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1302, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1303
 *             else <optional[int64_t]>(<int64_t>stop),
 *             step,
 *             <optional[c_bool]>nullopt if return_fixed_size_list is None             # <<<<<<<<<<<<<<
 *             else <optional[c_bool]>(<c_bool>return_fixed_size_list)
 *         )
*/
  __pyx_t_8 = (__pyx_v_return_fixed_size_list == Py_None);
  if (__pyx_t_8) {
    __pyx_t_10 = ((std::optional<bool> )std::nullopt);
  } else {

    /* "pyarrow/_compute.pyx":1304
 *             step,
 *             <optional[c_bool]>nullopt if return_fixed_size_list is None
 *             else <optional[c_bool]>(<c_bool>return_fixed_size_list)             # <<<<<<<<<<<<<<
 *         )
 *         self.wrapped.reset(opts)
*/
    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_return_fixed_size_list); if (unlikely((__pyx_t_11 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1304, __pyx_L1_error)
    __pyx_t_10 = ((std::optional<bool> )((bool)__pyx_t_11));
  }

  /* "pyarrow/_compute.pyx":1298
 *         cdef:
 *             CListSliceOptions* opts
 *         opts = new CListSliceOptions(             # <<<<<<<<<<<<<<
 *             start,
 *             <optional[int64_t]>nullopt if stop is None
*/
  __pyx_v_opts = new arrow::compute::ListSliceOptions(__pyx_t_6, __pyx_t_7, __pyx_t_9, __pyx_t_10);

  /* "pyarrow/_compute.pyx":1306
 *             else <optional[c_bool]>(<c_bool>return_fixed_size_list)
 *         )
 *         self.wrapped.reset(opts)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_v_self->__pyx_base.wrapped.reset(__pyx_v_opts);

  /* "pyarrow/_compute.pyx":1295
 * 
 * cdef class _ListSliceOptions(FunctionOptions):
 *     cpdef _set_options(self, start, stop=None, step=1, return_fixed_size_list=None):             # <<<<<<<<<<<<<<
 *         cdef:
 *             CListSliceOptions* opts
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute._ListSliceOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_ListSliceOptions__set_options, "_ListSliceOptions._set_options(self, start, stop=None, step=1, return_fixed_size_list=None)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_ListSliceOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_ListSliceOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_start = 0;
  PyObject *__pyx_v_stop = 0;
  PyObject *__pyx_v_step = 0;
  PyObject *__pyx_v_return_fixed_size_list = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_start,&__pyx_mstate_global->__pyx_n_u_stop,&__pyx_mstate_global->__pyx_n_u_step,&__pyx_mstate_global->__pyx_n_u_return_fixed_size_list,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1295, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1295, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1295, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1295, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1295, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1295, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_1));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 0, 1, 4, i); __PYX_ERR(0, 1295, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1295, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1295, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1295, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1295, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_1));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_start = values[0];
    __pyx_v_stop = values[1];
    __pyx_v_step = values[2];
    __pyx_v_return_fixed_size_list = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 1295, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ListSliceOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_ListSliceOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *)__pyx_v_self), __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_return_fixed_size_list);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_ListSliceOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_step, PyObject *__pyx_v_return_fixed_size_list) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_7pyarrow_8_compute_17_ListSliceOptions__set_options __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.stop = __pyx_v_stop;
  __pyx_t_2.step = __pyx_v_step;
  __pyx_t_2.return_fixed_size_list = __pyx_v_return_fixed_size_list;
  __pyx_t_1 = __pyx_vtabptr_7pyarrow_8_compute__ListSliceOptions->_set_options(__pyx_v_self, __pyx_v_start, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute._ListSliceOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_ListSliceOptions_2__reduce_cython__, "_ListSliceOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_ListSliceOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_ListSliceOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_ListSliceOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_ListSliceOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ListSliceOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_ListSliceOptions_4__setstate_cython__, "_ListSliceOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_ListSliceOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_ListSliceOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ListSliceOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_ListSliceOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_ListSliceOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ListSliceOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1329
 *     """
 * 
 *     def __init__(self, start, stop=None, step=1, return_fixed_size_list=None):             # <<<<<<<<<<<<<<
 *         self._set_options(start, stop, step, return_fixed_size_list)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16ListSliceOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16ListSliceOptions___init__, "ListSliceOptions.__init__(self, start, stop=None, step=1, return_fixed_size_list=None)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16ListSliceOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16ListSliceOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16ListSliceOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16ListSliceOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_start = 0;
  PyObject *__pyx_v_stop = 0;
  PyObject *__pyx_v_step = 0;
  PyObject *__pyx_v_return_fixed_size_list = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_start,&__pyx_mstate_global->__pyx_n_u_stop,&__pyx_mstate_global->__pyx_n_u_step,&__pyx_mstate_global->__pyx_n_u_return_fixed_size_list,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1329, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1329, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1329, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1329, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1329, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1329, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1329, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, i); __PYX_ERR(0, 1329, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1329, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1329, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1329, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1329, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1329, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_self = values[0];
    __pyx_v_start = values[1];
    __pyx_v_stop = values[2];
    __pyx_v_step = values[3];
    __pyx_v_return_fixed_size_list = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(0, 1329, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ListSliceOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16ListSliceOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_return_fixed_size_list);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16ListSliceOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_step, PyObject *__pyx_v_return_fixed_size_list) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1330
 * 
 *     def __init__(self, start, stop=None, step=1, return_fixed_size_list=None):
 *         self._set_options(start, stop, step, return_fixed_size_list)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_return_fixed_size_list};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (5-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1330, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1329
 *     """
 * 
 *     def __init__(self, start, stop=None, step=1, return_fixed_size_list=None):             # <<<<<<<<<<<<<<
 *         self._set_options(start, stop, step, return_fixed_size_list)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.ListSliceOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1334
 * 
 * cdef class _ReplaceSliceOptions(FunctionOptions):
 *     def _set_options(self, start, stop, replacement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CReplaceSliceOptions(start, stop, tobytes(replacement))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_ReplaceSliceOptions__set_options, "_ReplaceSliceOptions._set_options(self, start, stop, replacement)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_ReplaceSliceOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ReplaceSliceOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_start = 0;
  PyObject *__pyx_v_stop = 0;
  PyObject *__pyx_v_replacement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_start,&__pyx_mstate_global->__pyx_n_u_stop,&__pyx_mstate_global->__pyx_n_u_replacement,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1334, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1334, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1334, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1334, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1334, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 1334, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1334, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1334, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1334, __pyx_L3_error)
    }
    __pyx_v_start = values[0];
    __pyx_v_stop = values[1];
    __pyx_v_replacement = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1334, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ReplaceSliceOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_ReplaceSliceOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions *)__pyx_v_self), __pyx_v_start, __pyx_v_stop, __pyx_v_replacement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_ReplaceSliceOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_replacement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
  int64_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  std::string __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1336
 *     def _set_options(self, start, stop, replacement):
 *         self.wrapped.reset(
 *             new CReplaceSliceOptions(start, stop, tobytes(replacement))             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int64_t(__pyx_v_start); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1336, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyLong_As_int64_t(__pyx_v_stop); if (unlikely((__pyx_t_2 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1336, __pyx_L1_error)
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_replacement};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1336, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_7 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1336, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":1335
 * cdef class _ReplaceSliceOptions(FunctionOptions):
 *     def _set_options(self, start, stop, replacement):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CReplaceSliceOptions(start, stop, tobytes(replacement))
 *         )
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::ReplaceSliceOptions(__pyx_t_1, __pyx_t_2, __pyx_t_7));

  /* "pyarrow/_compute.pyx":1334
 * 
 * cdef class _ReplaceSliceOptions(FunctionOptions):
 *     def _set_options(self, start, stop, replacement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CReplaceSliceOptions(start, stop, tobytes(replacement))
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pyarrow._compute._ReplaceSliceOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_ReplaceSliceOptions_2__reduce_cython__, "_ReplaceSliceOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_ReplaceSliceOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ReplaceSliceOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_ReplaceSliceOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_ReplaceSliceOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ReplaceSliceOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_ReplaceSliceOptions_4__setstate_cython__, "_ReplaceSliceOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_ReplaceSliceOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ReplaceSliceOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ReplaceSliceOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_ReplaceSliceOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_ReplaceSliceOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ReplaceSliceOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1354
 *     """
 * 
 *     def __init__(self, start, stop, replacement):             # <<<<<<<<<<<<<<
 *         self._set_options(start, stop, replacement)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19ReplaceSliceOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19ReplaceSliceOptions___init__, "ReplaceSliceOptions.__init__(self, start, stop, replacement)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19ReplaceSliceOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19ReplaceSliceOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19ReplaceSliceOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19ReplaceSliceOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_start = 0;
  PyObject *__pyx_v_stop = 0;
  PyObject *__pyx_v_replacement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_start,&__pyx_mstate_global->__pyx_n_u_stop,&__pyx_mstate_global->__pyx_n_u_replacement,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1354, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1354, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1354, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1354, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1354, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1354, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(0, 1354, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1354, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1354, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1354, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1354, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_start = values[1];
    __pyx_v_stop = values[2];
    __pyx_v_replacement = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 1354, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ReplaceSliceOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19ReplaceSliceOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_start, __pyx_v_stop, __pyx_v_replacement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19ReplaceSliceOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_replacement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1355
 * 
 *     def __init__(self, start, stop, replacement):
 *         self._set_options(start, stop, replacement)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_start, __pyx_v_stop, __pyx_v_replacement};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1355, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1354
 *     """
 * 
 *     def __init__(self, start, stop, replacement):             # <<<<<<<<<<<<<<
 *         self._set_options(start, stop, replacement)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.ReplaceSliceOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1364
 *     }
 * 
 *     def _set_options(self, null_selection_behavior):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_14_FilterOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_14_FilterOptions__set_options, "_FilterOptions._set_options(self, null_selection_behavior)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_14_FilterOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_FilterOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_FilterOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_14_FilterOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_null_selection_behavior = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_null_selection_behavior,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1364, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1364, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1364, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1364, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1364, __pyx_L3_error)
    }
    __pyx_v_null_selection_behavior = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1364, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._FilterOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14_FilterOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__FilterOptions *)__pyx_v_self), __pyx_v_null_selection_behavior);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14_FilterOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__FilterOptions *__pyx_v_self, PyObject *__pyx_v_null_selection_behavior) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  enum arrow::compute::FilterOptions::NullSelectionBehavior __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  size_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1365
 * 
 *     def _set_options(self, null_selection_behavior):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CFilterOptions(
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "pyarrow/_compute.pyx":1368
 *             self.wrapped.reset(
 *                 new CFilterOptions(
 *                     self._null_selection_map[null_selection_behavior]             # <<<<<<<<<<<<<<
 *                 )
 *             )
*/
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_null_selection_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1368, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_null_selection_behavior); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1368, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = ((enum arrow::compute::FilterOptions::NullSelectionBehavior)__Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_FilterOptions_3a__3a_NullSelectionBehavior(__pyx_t_5)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1368, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "pyarrow/_compute.pyx":1366
 *     def _set_options(self, null_selection_behavior):
 *         try:
 *             self.wrapped.reset(             # <<<<<<<<<<<<<<
 *                 new CFilterOptions(
 *                     self._null_selection_map[null_selection_behavior]
*/
      __pyx_v_self->__pyx_base.wrapped.reset(new  arrow::compute::FilterOptions(__pyx_t_6));

      /* "pyarrow/_compute.pyx":1365
 * 
 *     def _set_options(self, null_selection_behavior):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CFilterOptions(
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "pyarrow/_compute.pyx":1371
 *                 )
 *             )
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(null_selection_behavior,
 *                                            "null selection behavior")
*/
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_7) {
      __Pyx_AddTraceback("pyarrow._compute._FilterOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 1371, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_8);

      /* "pyarrow/_compute.pyx":1372
 *             )
 *         except KeyError:
 *             _raise_invalid_function_option(null_selection_behavior,             # <<<<<<<<<<<<<<
 *                                            "null selection behavior")
 * 
*/
      __pyx_t_10 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1372, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_12 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
        assert(__pyx_t_10);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
        __pyx_t_12 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_10, __pyx_v_null_selection_behavior, __pyx_mstate_global->__pyx_kp_u_null_selection_behavior_2};
        __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_12, (3-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1372, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "pyarrow/_compute.pyx":1365
 * 
 *     def _set_options(self, null_selection_behavior):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CFilterOptions(
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "pyarrow/_compute.pyx":1364
 *     }
 * 
 *     def _set_options(self, null_selection_behavior):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("pyarrow._compute._FilterOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_14_FilterOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_14_FilterOptions_2__reduce_cython__, "_FilterOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_14_FilterOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_FilterOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_FilterOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_14_FilterOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14_FilterOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__FilterOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14_FilterOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__FilterOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._FilterOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_14_FilterOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_14_FilterOptions_4__setstate_cython__, "_FilterOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_14_FilterOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_FilterOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_FilterOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_14_FilterOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._FilterOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14_FilterOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__FilterOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14_FilterOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__FilterOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._FilterOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1387
 *     """
 * 
 *     def __init__(self, null_selection_behavior="drop"):             # <<<<<<<<<<<<<<
 *         self._set_options(null_selection_behavior)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13FilterOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13FilterOptions___init__, "FilterOptions.__init__(self, null_selection_behavior='drop')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13FilterOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13FilterOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13FilterOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13FilterOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_null_selection_behavior = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_null_selection_behavior,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1387, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1387, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1387, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1387, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_drop)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 1387, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1387, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1387, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_drop)));
    }
    __pyx_v_self = values[0];
    __pyx_v_null_selection_behavior = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1387, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.FilterOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13FilterOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_null_selection_behavior);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13FilterOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_null_selection_behavior) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1388
 * 
 *     def __init__(self, null_selection_behavior="drop"):
 *         self._set_options(null_selection_behavior)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_null_selection_behavior};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1388, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1387
 *     """
 * 
 *     def __init__(self, null_selection_behavior="drop"):             # <<<<<<<<<<<<<<
 *         self._set_options(null_selection_behavior)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.FilterOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1397
 *     }
 * 
 *     def _set_options(self, null_encoding):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_24_DictionaryEncodeOptions__set_options, "_DictionaryEncodeOptions._set_options(self, null_encoding)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_24_DictionaryEncodeOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_DictionaryEncodeOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_null_encoding = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_null_encoding,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1397, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1397, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1397, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1397, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1397, __pyx_L3_error)
    }
    __pyx_v_null_encoding = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1397, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._DictionaryEncodeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_24_DictionaryEncodeOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions *)__pyx_v_self), __pyx_v_null_encoding);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_24_DictionaryEncodeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions *__pyx_v_self, PyObject *__pyx_v_null_encoding) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  size_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1398
 * 
 *     def _set_options(self, null_encoding):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CDictionaryEncodeOptions(
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "pyarrow/_compute.pyx":1401
 *             self.wrapped.reset(
 *                 new CDictionaryEncodeOptions(
 *                     self._null_encoding_map[null_encoding]             # <<<<<<<<<<<<<<
 *                 )
 *             )
*/
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_null_encoding_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1401, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_null_encoding); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1401, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = ((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)__Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_DictionaryEncodeOptions_3a__3a_NullEncodingBehavior(__pyx_t_5)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1401, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "pyarrow/_compute.pyx":1399
 *     def _set_options(self, null_encoding):
 *         try:
 *             self.wrapped.reset(             # <<<<<<<<<<<<<<
 *                 new CDictionaryEncodeOptions(
 *                     self._null_encoding_map[null_encoding]
*/
      __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::DictionaryEncodeOptions(__pyx_t_6));

      /* "pyarrow/_compute.pyx":1398
 * 
 *     def _set_options(self, null_encoding):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CDictionaryEncodeOptions(
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "pyarrow/_compute.pyx":1404
 *                 )
 *             )
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(null_encoding, "null encoding")
 * 
*/
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_7) {
      __Pyx_AddTraceback("pyarrow._compute._DictionaryEncodeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 1404, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_8);

      /* "pyarrow/_compute.pyx":1405
 *             )
 *         except KeyError:
 *             _raise_invalid_function_option(null_encoding, "null encoding")             # <<<<<<<<<<<<<<
 * 
 * 
*/
      __pyx_t_10 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1405, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_12 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
        assert(__pyx_t_10);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
        __pyx_t_12 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_10, __pyx_v_null_encoding, __pyx_mstate_global->__pyx_kp_u_null_encoding_2};
        __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_12, (3-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1405, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "pyarrow/_compute.pyx":1398
 * 
 *     def _set_options(self, null_encoding):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CDictionaryEncodeOptions(
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "pyarrow/_compute.pyx":1397
 *     }
 * 
 *     def _set_options(self, null_encoding):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("pyarrow._compute._DictionaryEncodeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_24_DictionaryEncodeOptions_2__reduce_cython__, "_DictionaryEncodeOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_24_DictionaryEncodeOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_DictionaryEncodeOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_24_DictionaryEncodeOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_24_DictionaryEncodeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._DictionaryEncodeOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_24_DictionaryEncodeOptions_4__setstate_cython__, "_DictionaryEncodeOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_24_DictionaryEncodeOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_DictionaryEncodeOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._DictionaryEncodeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_24_DictionaryEncodeOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_24_DictionaryEncodeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._DictionaryEncodeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1421
 *     """
 * 
 *     def __init__(self, null_encoding="mask"):             # <<<<<<<<<<<<<<
 *         self._set_options(null_encoding)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_23DictionaryEncodeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_23DictionaryEncodeOptions___init__, "DictionaryEncodeOptions.__init__(self, null_encoding='mask')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_23DictionaryEncodeOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23DictionaryEncodeOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23DictionaryEncodeOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_23DictionaryEncodeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_null_encoding = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_null_encoding,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1421, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1421, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1421, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1421, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_mask)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 1421, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1421, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1421, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_mask)));
    }
    __pyx_v_self = values[0];
    __pyx_v_null_encoding = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1421, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.DictionaryEncodeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_23DictionaryEncodeOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_null_encoding);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_23DictionaryEncodeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_null_encoding) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1422
 * 
 *     def __init__(self, null_encoding="mask"):
 *         self._set_options(null_encoding)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_null_encoding};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1422, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1421
 *     """
 * 
 *     def __init__(self, null_encoding="mask"):             # <<<<<<<<<<<<<<
 *         self._set_options(null_encoding)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.DictionaryEncodeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1426
 * 
 * cdef class _RunEndEncodeOptions(FunctionOptions):
 *     def _set_options(self, run_end_type):             # <<<<<<<<<<<<<<
 *         run_end_ty = ensure_type(run_end_type)
 *         self.wrapped.reset(new CRunEndEncodeOptions(pyarrow_unwrap_data_type(run_end_ty)))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_RunEndEncodeOptions__set_options, "_RunEndEncodeOptions._set_options(self, run_end_type)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_RunEndEncodeOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RunEndEncodeOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_run_end_type = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_run_end_type,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1426, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1426, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1426, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1426, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1426, __pyx_L3_error)
    }
    __pyx_v_run_end_type = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1426, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RunEndEncodeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_RunEndEncodeOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions *)__pyx_v_self), __pyx_v_run_end_type);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_RunEndEncodeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions *__pyx_v_self, PyObject *__pyx_v_run_end_type) {
  struct __pyx_obj_7pyarrow_3lib_DataType *__pyx_v_run_end_ty = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::shared_ptr< arrow::DataType>  __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1427
 * cdef class _RunEndEncodeOptions(FunctionOptions):
 *     def _set_options(self, run_end_type):
 *         run_end_ty = ensure_type(run_end_type)             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CRunEndEncodeOptions(pyarrow_unwrap_data_type(run_end_ty)))
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7pyarrow_3lib_ensure_type(__pyx_v_run_end_type, 0, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_run_end_ty = ((struct __pyx_obj_7pyarrow_3lib_DataType *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1428
 *     def _set_options(self, run_end_type):
 *         run_end_ty = ensure_type(run_end_type)
 *         self.wrapped.reset(new CRunEndEncodeOptions(pyarrow_unwrap_data_type(run_end_ty)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_data_type(((PyObject *)__pyx_v_run_end_ty)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1428, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::RunEndEncodeOptions(__pyx_t_2));

  /* "pyarrow/_compute.pyx":1426
 * 
 * cdef class _RunEndEncodeOptions(FunctionOptions):
 *     def _set_options(self, run_end_type):             # <<<<<<<<<<<<<<
 *         run_end_ty = ensure_type(run_end_type)
 *         self.wrapped.reset(new CRunEndEncodeOptions(pyarrow_unwrap_data_type(run_end_ty)))
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute._RunEndEncodeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_run_end_ty);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_RunEndEncodeOptions_2__reduce_cython__, "_RunEndEncodeOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_RunEndEncodeOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RunEndEncodeOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_RunEndEncodeOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_RunEndEncodeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RunEndEncodeOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_RunEndEncodeOptions_4__setstate_cython__, "_RunEndEncodeOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_RunEndEncodeOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RunEndEncodeOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RunEndEncodeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_RunEndEncodeOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_RunEndEncodeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RunEndEncodeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1443
 *     """
 * 
 *     def __init__(self, run_end_type=lib.int32()):             # <<<<<<<<<<<<<<
 *         self._set_options(run_end_type)
 * 
*/

static PyObject *__pyx_pf_7pyarrow_8_compute_36__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self)->arg0) != (0)) __PYX_ERR(0, 1443, __pyx_L1_error);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 1443, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None) != (0)) __PYX_ERR(0, 1443, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19RunEndEncodeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19RunEndEncodeOptions___init__, "RunEndEncodeOptions.__init__(self, run_end_type=lib.int32())");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19RunEndEncodeOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19RunEndEncodeOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19RunEndEncodeOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19RunEndEncodeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_run_end_type = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_run_end_type,0};
    struct __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_self);
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1443, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1443, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1443, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1443, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 1443, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1443, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1443, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(__pyx_dynamic_args->arg0);
    }
    __pyx_v_self = values[0];
    __pyx_v_run_end_type = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1443, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.RunEndEncodeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19RunEndEncodeOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_run_end_type);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19RunEndEncodeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_run_end_type) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1444
 * 
 *     def __init__(self, run_end_type=lib.int32()):
 *         self._set_options(run_end_type)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_run_end_type};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1444, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1443
 *     """
 * 
 *     def __init__(self, run_end_type=lib.int32()):             # <<<<<<<<<<<<<<
 *         self._set_options(run_end_type)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.RunEndEncodeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1448
 * 
 * cdef class _InversePermutationOptions(FunctionOptions):
 *     def _set_options(self, max_index=-1, output_type=None):             # <<<<<<<<<<<<<<
 *         cdef optional[shared_ptr[CDataType]] c_output_type = nullopt
 *         if output_type is not None:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_26_InversePermutationOptions__set_options, "_InversePermutationOptions._set_options(self, max_index=-1, output_type=None)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_26_InversePermutationOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_26_InversePermutationOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_max_index = 0;
  PyObject *__pyx_v_output_type = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_max_index,&__pyx_mstate_global->__pyx_n_u_output_type,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1448, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1448, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1448, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1448, __pyx_L3_error)
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_neg_1));
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1448, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1448, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)__pyx_mstate_global->__pyx_int_neg_1));
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_max_index = values[0];
    __pyx_v_output_type = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1448, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._InversePermutationOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_26_InversePermutationOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions *)__pyx_v_self), __pyx_v_max_index, __pyx_v_output_type);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_26_InversePermutationOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions *__pyx_v_self, PyObject *__pyx_v_max_index, PyObject *__pyx_v_output_type) {
  std::optional<std::shared_ptr< arrow::DataType> >  __pyx_v_c_output_type;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  std::shared_ptr< arrow::DataType>  __pyx_t_3;
  int64_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1449
 * cdef class _InversePermutationOptions(FunctionOptions):
 *     def _set_options(self, max_index=-1, output_type=None):
 *         cdef optional[shared_ptr[CDataType]] c_output_type = nullopt             # <<<<<<<<<<<<<<
 *         if output_type is not None:
 *             c_output_type = pyarrow_unwrap_data_type(ensure_type(output_type))
*/
  __pyx_v_c_output_type = std::nullopt;

  /* "pyarrow/_compute.pyx":1450
 *     def _set_options(self, max_index=-1, output_type=None):
 *         cdef optional[shared_ptr[CDataType]] c_output_type = nullopt
 *         if output_type is not None:             # <<<<<<<<<<<<<<
 *             c_output_type = pyarrow_unwrap_data_type(ensure_type(output_type))
 *         self.wrapped.reset(
*/
  __pyx_t_1 = (__pyx_v_output_type != Py_None);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1451
 *         cdef optional[shared_ptr[CDataType]] c_output_type = nullopt
 *         if output_type is not None:
 *             c_output_type = pyarrow_unwrap_data_type(ensure_type(output_type))             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CInversePermutationOptions(max_index, c_output_type))
*/
    __pyx_t_2 = ((PyObject *)__pyx_f_7pyarrow_3lib_ensure_type(__pyx_v_output_type, 0, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_data_type(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1451, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_c_output_type = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_3);

    /* "pyarrow/_compute.pyx":1450
 *     def _set_options(self, max_index=-1, output_type=None):
 *         cdef optional[shared_ptr[CDataType]] c_output_type = nullopt
 *         if output_type is not None:             # <<<<<<<<<<<<<<
 *             c_output_type = pyarrow_unwrap_data_type(ensure_type(output_type))
 *         self.wrapped.reset(
*/
  }

  /* "pyarrow/_compute.pyx":1453
 *             c_output_type = pyarrow_unwrap_data_type(ensure_type(output_type))
 *         self.wrapped.reset(
 *             new CInversePermutationOptions(max_index, c_output_type))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_4 = __Pyx_PyLong_As_int64_t(__pyx_v_max_index); if (unlikely((__pyx_t_4 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1453, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1452
 *         if output_type is not None:
 *             c_output_type = pyarrow_unwrap_data_type(ensure_type(output_type))
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CInversePermutationOptions(max_index, c_output_type))
 * 
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::InversePermutationOptions(__pyx_t_4, __pyx_v_c_output_type));

  /* "pyarrow/_compute.pyx":1448
 * 
 * cdef class _InversePermutationOptions(FunctionOptions):
 *     def _set_options(self, max_index=-1, output_type=None):             # <<<<<<<<<<<<<<
 *         cdef optional[shared_ptr[CDataType]] c_output_type = nullopt
 *         if output_type is not None:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute._InversePermutationOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_26_InversePermutationOptions_2__reduce_cython__, "_InversePermutationOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_26_InversePermutationOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_26_InversePermutationOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_26_InversePermutationOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_26_InversePermutationOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._InversePermutationOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_26_InversePermutationOptions_4__setstate_cython__, "_InversePermutationOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_26_InversePermutationOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_26_InversePermutationOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._InversePermutationOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_26_InversePermutationOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_26_InversePermutationOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._InversePermutationOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1475
 *     """
 * 
 *     def __init__(self, max_index=-1, output_type=None):             # <<<<<<<<<<<<<<
 *         self._set_options(max_index, output_type)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_25InversePermutationOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_25InversePermutationOptions___init__, "InversePermutationOptions.__init__(self, max_index=-1, output_type=None)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_25InversePermutationOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_25InversePermutationOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_25InversePermutationOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_25InversePermutationOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_max_index = 0;
  PyObject *__pyx_v_output_type = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_max_index,&__pyx_mstate_global->__pyx_n_u_output_type,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1475, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1475, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1475, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1475, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1475, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_neg_1)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(0, 1475, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1475, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1475, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1475, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_neg_1)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_self = values[0];
    __pyx_v_max_index = values[1];
    __pyx_v_output_type = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1475, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.InversePermutationOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_25InversePermutationOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_max_index, __pyx_v_output_type);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_25InversePermutationOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_max_index, PyObject *__pyx_v_output_type) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1476
 * 
 *     def __init__(self, max_index=-1, output_type=None):
 *         self._set_options(max_index, output_type)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_max_index, __pyx_v_output_type};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1476, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1475
 *     """
 * 
 *     def __init__(self, max_index=-1, output_type=None):             # <<<<<<<<<<<<<<
 *         self._set_options(max_index, output_type)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.InversePermutationOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1480
 * 
 * cdef class _ScatterOptions(FunctionOptions):
 *     def _set_options(self, max_index):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CScatterOptions(max_index))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15_ScatterOptions__set_options, "_ScatterOptions._set_options(self, max_index)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15_ScatterOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_ScatterOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_max_index = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_max_index,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1480, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1480, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1480, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1480, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1480, __pyx_L3_error)
    }
    __pyx_v_max_index = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1480, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ScatterOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15_ScatterOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ScatterOptions *)__pyx_v_self), __pyx_v_max_index);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15_ScatterOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ScatterOptions *__pyx_v_self, PyObject *__pyx_v_max_index) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1481
 * cdef class _ScatterOptions(FunctionOptions):
 *     def _set_options(self, max_index):
 *         self.wrapped.reset(new CScatterOptions(max_index))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int64_t(__pyx_v_max_index); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1481, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::ScatterOptions(__pyx_t_1));

  /* "pyarrow/_compute.pyx":1480
 * 
 * cdef class _ScatterOptions(FunctionOptions):
 *     def _set_options(self, max_index):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CScatterOptions(max_index))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ScatterOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15_ScatterOptions_2__reduce_cython__, "_ScatterOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15_ScatterOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_ScatterOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15_ScatterOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ScatterOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15_ScatterOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ScatterOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ScatterOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15_ScatterOptions_4__setstate_cython__, "_ScatterOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15_ScatterOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_ScatterOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ScatterOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15_ScatterOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ScatterOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15_ScatterOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ScatterOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ScatterOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1497
 *     """
 * 
 *     def __init__(self, max_index=-1):             # <<<<<<<<<<<<<<
 *         self._set_options(max_index)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_14ScatterOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_14ScatterOptions___init__, "ScatterOptions.__init__(self, max_index=-1)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_14ScatterOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14ScatterOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14ScatterOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_14ScatterOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_max_index = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_max_index,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1497, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1497, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1497, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1497, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_neg_1)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 1497, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1497, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1497, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_neg_1)));
    }
    __pyx_v_self = values[0];
    __pyx_v_max_index = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1497, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ScatterOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14ScatterOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_max_index);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14ScatterOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_max_index) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1498
 * 
 *     def __init__(self, max_index=-1):
 *         self._set_options(max_index)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_max_index};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1498, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1497
 *     """
 * 
 *     def __init__(self, max_index=-1):             # <<<<<<<<<<<<<<
 *         self._set_options(max_index)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.ScatterOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1502
 * 
 * cdef class _TakeOptions(FunctionOptions):
 *     def _set_options(self, boundscheck):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CTakeOptions(boundscheck))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TakeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_TakeOptions__set_options, "_TakeOptions._set_options(self, boundscheck)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_TakeOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TakeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TakeOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TakeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_boundscheck = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_boundscheck,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1502, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1502, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1502, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1502, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1502, __pyx_L3_error)
    }
    __pyx_v_boundscheck = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1502, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._TakeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_TakeOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__TakeOptions *)__pyx_v_self), __pyx_v_boundscheck);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_TakeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__TakeOptions *__pyx_v_self, PyObject *__pyx_v_boundscheck) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1503
 * cdef class _TakeOptions(FunctionOptions):
 *     def _set_options(self, boundscheck):
 *         self.wrapped.reset(new CTakeOptions(boundscheck))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_boundscheck); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1503, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new  arrow::compute::TakeOptions(__pyx_t_1));

  /* "pyarrow/_compute.pyx":1502
 * 
 * cdef class _TakeOptions(FunctionOptions):
 *     def _set_options(self, boundscheck):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CTakeOptions(boundscheck))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._TakeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TakeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_TakeOptions_2__reduce_cython__, "_TakeOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_TakeOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TakeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TakeOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TakeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_TakeOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__TakeOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_TakeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TakeOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._TakeOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TakeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_TakeOptions_4__setstate_cython__, "_TakeOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_TakeOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TakeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TakeOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_TakeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._TakeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_TakeOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__TakeOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_TakeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TakeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._TakeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1518
 *     """
 * 
 *     def __init__(self, *, boundscheck=True):             # <<<<<<<<<<<<<<
 *         self._set_options(boundscheck)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11TakeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11TakeOptions___init__, "TakeOptions.__init__(self, *, boundscheck=True)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11TakeOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11TakeOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11TakeOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11TakeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_boundscheck = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_boundscheck,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1518, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1518, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1518, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 1518, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1518, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
    }
    __pyx_v_self = values[0];
    __pyx_v_boundscheck = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1518, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.TakeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11TakeOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_boundscheck);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11TakeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_boundscheck) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1519
 * 
 *     def __init__(self, *, boundscheck=True):
 *         self._set_options(boundscheck)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_boundscheck};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1518
 *     """
 * 
 *     def __init__(self, *, boundscheck=True):             # <<<<<<<<<<<<<<
 *         self._set_options(boundscheck)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.TakeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1523
 * 
 * cdef class _MakeStructOptions(FunctionOptions):
 *     def _set_options(self, field_names, field_nullability, field_metadata):             # <<<<<<<<<<<<<<
 *         cdef:
 *             vector[c_string] c_field_names
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18_MakeStructOptions__set_options, "_MakeStructOptions._set_options(self, field_names, field_nullability, field_metadata)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18_MakeStructOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_MakeStructOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_field_names = 0;
  PyObject *__pyx_v_field_nullability = 0;
  PyObject *__pyx_v_field_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_field_names,&__pyx_mstate_global->__pyx_n_u_field_nullability,&__pyx_mstate_global->__pyx_n_u_field_metadata,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1523, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1523, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1523, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1523, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1523, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 1523, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1523, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1523, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1523, __pyx_L3_error)
    }
    __pyx_v_field_names = values[0];
    __pyx_v_field_nullability = values[1];
    __pyx_v_field_metadata = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1523, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._MakeStructOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18_MakeStructOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions *)__pyx_v_self), __pyx_v_field_names, __pyx_v_field_nullability, __pyx_v_field_metadata);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18_MakeStructOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions *__pyx_v_self, PyObject *__pyx_v_field_names, PyObject *__pyx_v_field_nullability, PyObject *__pyx_v_field_metadata) {
  std::vector<std::string>  __pyx_v_c_field_names;
  std::vector<std::shared_ptr< arrow::KeyValueMetadata const > >  __pyx_v_c_field_metadata;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_metadata = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  std::string __pyx_t_8;
  std::shared_ptr< arrow::KeyValueMetadata const >  __pyx_t_9;
  std::vector<bool>  __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1527
 *             vector[c_string] c_field_names
 *             vector[shared_ptr[const CKeyValueMetadata]] c_field_metadata
 *         for name in field_names:             # <<<<<<<<<<<<<<
 *             c_field_names.push_back(tobytes(name))
 *         for metadata in field_metadata:
*/
  if (likely(PyList_CheckExact(__pyx_v_field_names)) || PyTuple_CheckExact(__pyx_v_field_names)) {
    __pyx_t_1 = __pyx_v_field_names; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_field_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1527, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1527, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1527, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1527, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1527, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "pyarrow/_compute.pyx":1528
 *             vector[shared_ptr[const CKeyValueMetadata]] c_field_metadata
 *         for name in field_names:
 *             c_field_names.push_back(tobytes(name))             # <<<<<<<<<<<<<<
 *         for metadata in field_metadata:
 *             c_field_metadata.push_back(pyarrow_unwrap_metadata(metadata))
*/
    __pyx_t_5 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_5);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_name};
      __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1528, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
    }
    __pyx_t_8 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1528, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    try {
      __pyx_v_c_field_names.push_back(__pyx_t_8);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 1528, __pyx_L1_error)
    }

    /* "pyarrow/_compute.pyx":1527
 *             vector[c_string] c_field_names
 *             vector[shared_ptr[const CKeyValueMetadata]] c_field_metadata
 *         for name in field_names:             # <<<<<<<<<<<<<<
 *             c_field_names.push_back(tobytes(name))
 *         for metadata in field_metadata:
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1529
 *         for name in field_names:
 *             c_field_names.push_back(tobytes(name))
 *         for metadata in field_metadata:             # <<<<<<<<<<<<<<
 *             c_field_metadata.push_back(pyarrow_unwrap_metadata(metadata))
 *         self.wrapped.reset(
*/
  if (likely(PyList_CheckExact(__pyx_v_field_metadata)) || PyTuple_CheckExact(__pyx_v_field_metadata)) {
    __pyx_t_1 = __pyx_v_field_metadata; __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_field_metadata); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1529, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1529, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_2;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1529, __pyx_L1_error)
          #endif
          if (__pyx_t_2 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
        #else
        __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
        #endif
        ++__pyx_t_2;
      }
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1529, __pyx_L1_error)
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1529, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_metadata, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "pyarrow/_compute.pyx":1530
 *             c_field_names.push_back(tobytes(name))
 *         for metadata in field_metadata:
 *             c_field_metadata.push_back(pyarrow_unwrap_metadata(metadata))             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CMakeStructOptions(c_field_names, field_nullability,
*/
    __pyx_t_9 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_metadata(__pyx_v_metadata); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1530, __pyx_L1_error)
    try {
      __pyx_v_c_field_metadata.push_back(__pyx_t_9);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 1530, __pyx_L1_error)
    }

    /* "pyarrow/_compute.pyx":1529
 *         for name in field_names:
 *             c_field_names.push_back(tobytes(name))
 *         for metadata in field_metadata:             # <<<<<<<<<<<<<<
 *             c_field_metadata.push_back(pyarrow_unwrap_metadata(metadata))
 *         self.wrapped.reset(
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1532
 *             c_field_metadata.push_back(pyarrow_unwrap_metadata(metadata))
 *         self.wrapped.reset(
 *             new CMakeStructOptions(c_field_names, field_nullability,             # <<<<<<<<<<<<<<
 *                                    c_field_metadata)
 *         )
*/
  __pyx_t_10 = __pyx_convert_vector_from_py_bool(__pyx_v_field_nullability); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1532, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1531
 *         for metadata in field_metadata:
 *             c_field_metadata.push_back(pyarrow_unwrap_metadata(metadata))
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CMakeStructOptions(c_field_names, field_nullability,
 *                                    c_field_metadata)
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::MakeStructOptions(__pyx_v_c_field_names, __pyx_t_10, __pyx_v_c_field_metadata));

  /* "pyarrow/_compute.pyx":1523
 * 
 * cdef class _MakeStructOptions(FunctionOptions):
 *     def _set_options(self, field_names, field_nullability, field_metadata):             # <<<<<<<<<<<<<<
 *         cdef:
 *             vector[c_string] c_field_names
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pyarrow._compute._MakeStructOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_metadata);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18_MakeStructOptions_2__reduce_cython__, "_MakeStructOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18_MakeStructOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_MakeStructOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18_MakeStructOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18_MakeStructOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._MakeStructOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18_MakeStructOptions_4__setstate_cython__, "_MakeStructOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18_MakeStructOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_MakeStructOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._MakeStructOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18_MakeStructOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18_MakeStructOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._MakeStructOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1552
 *     """
 * 
 *     def __init__(self, field_names=(), *, field_nullability=None,             # <<<<<<<<<<<<<<
 *                  field_metadata=None):
 *         if field_nullability is None:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17MakeStructOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17MakeStructOptions___init__, "MakeStructOptions.__init__(self, field_names=(), *, field_nullability=None, field_metadata=None)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17MakeStructOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17MakeStructOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17MakeStructOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17MakeStructOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_field_names = 0;
  PyObject *__pyx_v_field_nullability = 0;
  PyObject *__pyx_v_field_metadata = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_field_names,&__pyx_mstate_global->__pyx_n_u_field_nullability,&__pyx_mstate_global->__pyx_n_u_field_metadata,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1552, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1552, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1552, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1552, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_empty_tuple)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));

      /* "pyarrow/_compute.pyx":1553
 * 
 *     def __init__(self, field_names=(), *, field_nullability=None,
 *                  field_metadata=None):             # <<<<<<<<<<<<<<
 *         if field_nullability is None:
 *             field_nullability = [True] * len(field_names)
*/
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 1552, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1552, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1552, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_empty_tuple)));

      /* "pyarrow/_compute.pyx":1552
 *     """
 * 
 *     def __init__(self, field_names=(), *, field_nullability=None,             # <<<<<<<<<<<<<<
 *                  field_metadata=None):
 *         if field_nullability is None:
*/
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));

      /* "pyarrow/_compute.pyx":1553
 * 
 *     def __init__(self, field_names=(), *, field_nullability=None,
 *                  field_metadata=None):             # <<<<<<<<<<<<<<
 *         if field_nullability is None:
 *             field_nullability = [True] * len(field_names)
*/
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_self = values[0];
    __pyx_v_field_names = values[1];
    __pyx_v_field_nullability = values[2];
    __pyx_v_field_metadata = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1552, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.MakeStructOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17MakeStructOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_field_names, __pyx_v_field_nullability, __pyx_v_field_metadata);

  /* "pyarrow/_compute.pyx":1552
 *     """
 * 
 *     def __init__(self, field_names=(), *, field_nullability=None,             # <<<<<<<<<<<<<<
 *                  field_metadata=None):
 *         if field_nullability is None:
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17MakeStructOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_field_names, PyObject *__pyx_v_field_nullability, PyObject *__pyx_v_field_metadata) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v_field_nullability);
  __Pyx_INCREF(__pyx_v_field_metadata);

  /* "pyarrow/_compute.pyx":1554
 *     def __init__(self, field_names=(), *, field_nullability=None,
 *                  field_metadata=None):
 *         if field_nullability is None:             # <<<<<<<<<<<<<<
 *             field_nullability = [True] * len(field_names)
 *         if field_metadata is None:
*/
  __pyx_t_1 = (__pyx_v_field_nullability == Py_None);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1555
 *                  field_metadata=None):
 *         if field_nullability is None:
 *             field_nullability = [True] * len(field_names)             # <<<<<<<<<<<<<<
 *         if field_metadata is None:
 *             field_metadata = [None] * len(field_names)
*/
    __pyx_t_2 = PyObject_Length(__pyx_v_field_names); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1555, __pyx_L1_error)
    __pyx_t_3 = PyList_New(1 * ((__pyx_t_2<0) ? 0:__pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1555, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    { Py_ssize_t __pyx_temp;
      for (__pyx_temp=0; __pyx_temp < __pyx_t_2; __pyx_temp++) {
        __Pyx_INCREF(Py_True);
        __Pyx_GIVEREF(Py_True);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_3, __pyx_temp, Py_True) != (0)) __PYX_ERR(0, 1555, __pyx_L1_error);
      }
    }
    __Pyx_DECREF_SET(__pyx_v_field_nullability, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "pyarrow/_compute.pyx":1554
 *     def __init__(self, field_names=(), *, field_nullability=None,
 *                  field_metadata=None):
 *         if field_nullability is None:             # <<<<<<<<<<<<<<
 *             field_nullability = [True] * len(field_names)
 *         if field_metadata is None:
*/
  }

  /* "pyarrow/_compute.pyx":1556
 *         if field_nullability is None:
 *             field_nullability = [True] * len(field_names)
 *         if field_metadata is None:             # <<<<<<<<<<<<<<
 *             field_metadata = [None] * len(field_names)
 *         self._set_options(field_names, field_nullability, field_metadata)
*/
  __pyx_t_1 = (__pyx_v_field_metadata == Py_None);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1557
 *             field_nullability = [True] * len(field_names)
 *         if field_metadata is None:
 *             field_metadata = [None] * len(field_names)             # <<<<<<<<<<<<<<
 *         self._set_options(field_names, field_nullability, field_metadata)
 * 
*/
    __pyx_t_2 = PyObject_Length(__pyx_v_field_names); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1557, __pyx_L1_error)
    __pyx_t_3 = PyList_New(1 * ((__pyx_t_2<0) ? 0:__pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1557, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    { Py_ssize_t __pyx_temp;
      for (__pyx_temp=0; __pyx_temp < __pyx_t_2; __pyx_temp++) {
        __Pyx_INCREF(Py_None);
        __Pyx_GIVEREF(Py_None);
        if (__Pyx_PyList_SET_ITEM(__pyx_t_3, __pyx_temp, Py_None) != (0)) __PYX_ERR(0, 1557, __pyx_L1_error);
      }
    }
    __Pyx_DECREF_SET(__pyx_v_field_metadata, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "pyarrow/_compute.pyx":1556
 *         if field_nullability is None:
 *             field_nullability = [True] * len(field_names)
 *         if field_metadata is None:             # <<<<<<<<<<<<<<
 *             field_metadata = [None] * len(field_names)
 *         self._set_options(field_names, field_nullability, field_metadata)
*/
  }

  /* "pyarrow/_compute.pyx":1558
 *         if field_metadata is None:
 *             field_metadata = [None] * len(field_names)
 *         self._set_options(field_names, field_nullability, field_metadata)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_4 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_v_field_names, __pyx_v_field_nullability, __pyx_v_field_metadata};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1558, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":1552
 *     """
 * 
 *     def __init__(self, field_names=(), *, field_nullability=None,             # <<<<<<<<<<<<<<
 *                  field_metadata=None):
 *         if field_nullability is None:
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.MakeStructOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_field_nullability);
  __Pyx_XDECREF(__pyx_v_field_metadata);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1561
 * 
 * 
 * cdef CFieldRef _ensure_field_ref(value) except *:             # <<<<<<<<<<<<<<
 *     cdef:
 *         CFieldRef field_ref
*/

static  arrow::FieldRef __pyx_f_7pyarrow_8_compute__ensure_field_ref(PyObject *__pyx_v_value) {
   arrow::FieldRef __pyx_v_field_ref;
   arrow::FieldRef const *__pyx_v_field_ref_ptr;
   arrow::FieldRef __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  arrow::compute::Expression __pyx_t_7;
  std::string __pyx_t_8;
   arrow::FieldRef __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11[3];
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ensure_field_ref", 0);
  __Pyx_INCREF(__pyx_v_value);

  /* "pyarrow/_compute.pyx":1566
 *         const CFieldRef* field_ref_ptr
 * 
 *     if isinstance(value, (list, tuple)):             # <<<<<<<<<<<<<<
 *         value = Expression._nested_field(tuple(value))
 * 
*/
  __pyx_t_2 = PyList_Check(__pyx_v_value); 
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = PyTuple_Check(__pyx_v_value); 
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1567
 * 
 *     if isinstance(value, (list, tuple)):
 *         value = Expression._nested_field(tuple(value))             # <<<<<<<<<<<<<<
 * 
 *     if isinstance(value, Expression):
*/
    __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1567, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_nested_field, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1567, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "pyarrow/_compute.pyx":1566
 *         const CFieldRef* field_ref_ptr
 * 
 *     if isinstance(value, (list, tuple)):             # <<<<<<<<<<<<<<
 *         value = Expression._nested_field(tuple(value))
 * 
*/
  }

  /* "pyarrow/_compute.pyx":1569
 *         value = Expression._nested_field(tuple(value))
 * 
 *     if isinstance(value, Expression):             # <<<<<<<<<<<<<<
 *         field_ref_ptr = (<Expression>value).unwrap().field_ref()
 *         if field_ref_ptr is NULL:
*/
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_value, __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression); 
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1570
 * 
 *     if isinstance(value, Expression):
 *         field_ref_ptr = (<Expression>value).unwrap().field_ref()             # <<<<<<<<<<<<<<
 *         if field_ref_ptr is NULL:
 *             raise ValueError("Unable to get FieldRef from Expression")
*/
    __pyx_t_7 = __pyx_f_7pyarrow_8_compute_10Expression_unwrap(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_value)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1570, __pyx_L1_error)
    __pyx_v_field_ref_ptr = __pyx_t_7.field_ref();

    /* "pyarrow/_compute.pyx":1571
 *     if isinstance(value, Expression):
 *         field_ref_ptr = (<Expression>value).unwrap().field_ref()
 *         if field_ref_ptr is NULL:             # <<<<<<<<<<<<<<
 *             raise ValueError("Unable to get FieldRef from Expression")
 *         field_ref = <CFieldRef>deref(field_ref_ptr)
*/
    __pyx_t_1 = (__pyx_v_field_ref_ptr == NULL);
    if (unlikely(__pyx_t_1)) {

      /* "pyarrow/_compute.pyx":1572
 *         field_ref_ptr = (<Expression>value).unwrap().field_ref()
 *         if field_ref_ptr is NULL:
 *             raise ValueError("Unable to get FieldRef from Expression")             # <<<<<<<<<<<<<<
 *         field_ref = <CFieldRef>deref(field_ref_ptr)
 *     elif isinstance(value, (bytes, str)):
*/
      __pyx_t_5 = NULL;
      __pyx_t_6 = 1;
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Unable_to_get_FieldRef_from_Expr};
        __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1572, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(0, 1572, __pyx_L1_error)

      /* "pyarrow/_compute.pyx":1571
 *     if isinstance(value, Expression):
 *         field_ref_ptr = (<Expression>value).unwrap().field_ref()
 *         if field_ref_ptr is NULL:             # <<<<<<<<<<<<<<
 *             raise ValueError("Unable to get FieldRef from Expression")
 *         field_ref = <CFieldRef>deref(field_ref_ptr)
*/
    }

    /* "pyarrow/_compute.pyx":1573
 *         if field_ref_ptr is NULL:
 *             raise ValueError("Unable to get FieldRef from Expression")
 *         field_ref = <CFieldRef>deref(field_ref_ptr)             # <<<<<<<<<<<<<<
 *     elif isinstance(value, (bytes, str)):
 *         if value.startswith(b'.' if isinstance(value, bytes) else '.'):
*/
    __pyx_v_field_ref = (( arrow::FieldRef)(*__pyx_v_field_ref_ptr));

    /* "pyarrow/_compute.pyx":1569
 *         value = Expression._nested_field(tuple(value))
 * 
 *     if isinstance(value, Expression):             # <<<<<<<<<<<<<<
 *         field_ref_ptr = (<Expression>value).unwrap().field_ref()
 *         if field_ref_ptr is NULL:
*/
    goto __pyx_L6;
  }

  /* "pyarrow/_compute.pyx":1574
 *             raise ValueError("Unable to get FieldRef from Expression")
 *         field_ref = <CFieldRef>deref(field_ref_ptr)
 *     elif isinstance(value, (bytes, str)):             # <<<<<<<<<<<<<<
 *         if value.startswith(b'.' if isinstance(value, bytes) else '.'):
 *             field_ref = GetResultValue(
*/
  __pyx_t_2 = PyBytes_Check(__pyx_v_value); 
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_2 = PyUnicode_Check(__pyx_v_value); 
  __pyx_t_1 = __pyx_t_2;
  __pyx_L8_bool_binop_done:;
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1575
 *         field_ref = <CFieldRef>deref(field_ref_ptr)
 *     elif isinstance(value, (bytes, str)):
 *         if value.startswith(b'.' if isinstance(value, bytes) else '.'):             # <<<<<<<<<<<<<<
 *             field_ref = GetResultValue(
 *                 CFieldRef.FromDotPath(<c_string>tobytes(value)))
*/
    __pyx_t_5 = __pyx_v_value;
    __Pyx_INCREF(__pyx_t_5);
    __pyx_t_1 = PyBytes_Check(__pyx_v_value); 
    if (__pyx_t_1) {
      __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_b_);
      __pyx_t_4 = __pyx_mstate_global->__pyx_kp_b_;
    } else {
      __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_);
      __pyx_t_4 = __pyx_mstate_global->__pyx_kp_u_;
    }
    __pyx_t_6 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
      __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_startswith, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1575, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1575, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_1) {

      /* "pyarrow/_compute.pyx":1577
 *         if value.startswith(b'.' if isinstance(value, bytes) else '.'):
 *             field_ref = GetResultValue(
 *                 CFieldRef.FromDotPath(<c_string>tobytes(value)))             # <<<<<<<<<<<<<<
 *         else:
 *             field_ref = CFieldRef(<c_string>tobytes(value))
*/
      __pyx_t_4 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1577, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
        assert(__pyx_t_4);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
        __pyx_t_6 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_value};
        __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1577, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __pyx_t_8 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1577, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "pyarrow/_compute.pyx":1576
 *     elif isinstance(value, (bytes, str)):
 *         if value.startswith(b'.' if isinstance(value, bytes) else '.'):
 *             field_ref = GetResultValue(             # <<<<<<<<<<<<<<
 *                 CFieldRef.FromDotPath(<c_string>tobytes(value)))
 *         else:
*/
      __pyx_t_9 = arrow::py::GetResultValue< arrow::FieldRef>( arrow::FieldRef::FromDotPath(((std::string)__pyx_t_8))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1576, __pyx_L1_error)
      __pyx_v_field_ref = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_9);

      /* "pyarrow/_compute.pyx":1575
 *         field_ref = <CFieldRef>deref(field_ref_ptr)
 *     elif isinstance(value, (bytes, str)):
 *         if value.startswith(b'.' if isinstance(value, bytes) else '.'):             # <<<<<<<<<<<<<<
 *             field_ref = GetResultValue(
 *                 CFieldRef.FromDotPath(<c_string>tobytes(value)))
*/
      goto __pyx_L10;
    }

    /* "pyarrow/_compute.pyx":1579
 *                 CFieldRef.FromDotPath(<c_string>tobytes(value)))
 *         else:
 *             field_ref = CFieldRef(<c_string>tobytes(value))             # <<<<<<<<<<<<<<
 *     elif isinstance(value, int):
 *         field_ref = CFieldRef(<int> value)
*/
    /*else*/ {
      __pyx_t_5 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1579, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
        assert(__pyx_t_5);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
        __pyx_t_6 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_value};
        __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1579, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
      }
      __pyx_t_8 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1579, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_v_field_ref =  arrow::FieldRef(((std::string)__pyx_t_8));
    }
    __pyx_L10:;

    /* "pyarrow/_compute.pyx":1574
 *             raise ValueError("Unable to get FieldRef from Expression")
 *         field_ref = <CFieldRef>deref(field_ref_ptr)
 *     elif isinstance(value, (bytes, str)):             # <<<<<<<<<<<<<<
 *         if value.startswith(b'.' if isinstance(value, bytes) else '.'):
 *             field_ref = GetResultValue(
*/
    goto __pyx_L6;
  }

  /* "pyarrow/_compute.pyx":1580
 *         else:
 *             field_ref = CFieldRef(<c_string>tobytes(value))
 *     elif isinstance(value, int):             # <<<<<<<<<<<<<<
 *         field_ref = CFieldRef(<int> value)
 *     else:
*/
  __pyx_t_1 = PyLong_Check(__pyx_v_value); 
  if (likely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":1581
 *             field_ref = CFieldRef(<c_string>tobytes(value))
 *     elif isinstance(value, int):
 *         field_ref = CFieldRef(<int> value)             # <<<<<<<<<<<<<<
 *     else:
 *         raise TypeError("Expected a field reference as a str or int, list of "
*/
    __pyx_t_10 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1581, __pyx_L1_error)
    __pyx_v_field_ref =  arrow::FieldRef(((int)__pyx_t_10));

    /* "pyarrow/_compute.pyx":1580
 *         else:
 *             field_ref = CFieldRef(<c_string>tobytes(value))
 *     elif isinstance(value, int):             # <<<<<<<<<<<<<<
 *         field_ref = CFieldRef(<int> value)
 *     else:
*/
    goto __pyx_L6;
  }

  /* "pyarrow/_compute.pyx":1583
 *         field_ref = CFieldRef(<int> value)
 *     else:
 *         raise TypeError("Expected a field reference as a str or int, list of "             # <<<<<<<<<<<<<<
 *                         f"str or int, or Expression. Got {type(value)} instead.")
 *     return field_ref
*/
  /*else*/ {
    __pyx_t_4 = NULL;

    /* "pyarrow/_compute.pyx":1584
 *     else:
 *         raise TypeError("Expected a field reference as a str or int, list of "
 *                         f"str or int, or Expression. Got {type(value)} instead.")             # <<<<<<<<<<<<<<
 *     return field_ref
 * 
*/
    __pyx_t_5 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1584, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_Expected_a_field_reference_as_a;
    __pyx_t_11[1] = __pyx_t_5;
    __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u_instead;

    /* "pyarrow/_compute.pyx":1583
 *         field_ref = CFieldRef(<int> value)
 *     else:
 *         raise TypeError("Expected a field reference as a str or int, list of "             # <<<<<<<<<<<<<<
 *                         f"str or int, or Expression. Got {type(value)} instead.")
 *     return field_ref
*/
    __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_11, 3, 83 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 9, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5));
    if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1583, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_12};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1583, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 1583, __pyx_L1_error)
  }
  __pyx_L6:;

  /* "pyarrow/_compute.pyx":1585
 *         raise TypeError("Expected a field reference as a str or int, list of "
 *                         f"str or int, or Expression. Got {type(value)} instead.")
 *     return field_ref             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_field_ref;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":1561
 * 
 * 
 * cdef CFieldRef _ensure_field_ref(value) except *:             # <<<<<<<<<<<<<<
 *     cdef:
 *         CFieldRef field_ref
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("pyarrow._compute._ensure_field_ref", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1589
 * 
 * cdef class _StructFieldOptions(FunctionOptions):
 *     def _set_options(self, indices):             # <<<<<<<<<<<<<<
 * 
 *         if isinstance(indices, (list, tuple)) and not len(indices):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19_StructFieldOptions__set_options, "_StructFieldOptions._set_options(self, indices)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19_StructFieldOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_StructFieldOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_indices = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_indices,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1589, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1589, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1589, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1589, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1589, __pyx_L3_error)
    }
    __pyx_v_indices = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1589, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._StructFieldOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19_StructFieldOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions *)__pyx_v_self), __pyx_v_indices);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19_StructFieldOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions *__pyx_v_self, PyObject *__pyx_v_indices) {
   arrow::FieldRef __pyx_v_field_ref;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  std::vector<int>  __pyx_t_5;
   arrow::FieldRef __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1591
 *     def _set_options(self, indices):
 * 
 *         if isinstance(indices, (list, tuple)) and not len(indices):             # <<<<<<<<<<<<<<
 *             # Allow empty indices; effectively return same array
 *             self.wrapped.reset(
*/
  __pyx_t_3 = PyList_Check(__pyx_v_indices); 
  if (!__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_3 = PyTuple_Check(__pyx_v_indices); 
  __pyx_t_2 = __pyx_t_3;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = PyObject_Length(__pyx_v_indices); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1591, __pyx_L1_error)
  __pyx_t_2 = (!(__pyx_t_4 != 0));
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1594
 *             # Allow empty indices; effectively return same array
 *             self.wrapped.reset(
 *                 new CStructFieldOptions(<vector[int]>indices))             # <<<<<<<<<<<<<<
 *             return
 * 
*/
    __pyx_t_5 = __pyx_convert_vector_from_py_int(__pyx_v_indices); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1594, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":1593
 *         if isinstance(indices, (list, tuple)) and not len(indices):
 *             # Allow empty indices; effectively return same array
 *             self.wrapped.reset(             # <<<<<<<<<<<<<<
 *                 new CStructFieldOptions(<vector[int]>indices))
 *             return
*/
    __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::StructFieldOptions(((std::vector<int> )__pyx_t_5)));

    /* "pyarrow/_compute.pyx":1595
 *             self.wrapped.reset(
 *                 new CStructFieldOptions(<vector[int]>indices))
 *             return             # <<<<<<<<<<<<<<
 * 
 *         cdef CFieldRef field_ref = _ensure_field_ref(indices)
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":1591
 *     def _set_options(self, indices):
 * 
 *         if isinstance(indices, (list, tuple)) and not len(indices):             # <<<<<<<<<<<<<<
 *             # Allow empty indices; effectively return same array
 *             self.wrapped.reset(
*/
  }

  /* "pyarrow/_compute.pyx":1597
 *             return
 * 
 *         cdef CFieldRef field_ref = _ensure_field_ref(indices)             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CStructFieldOptions(field_ref))
 * 
*/
  __pyx_t_6 = __pyx_f_7pyarrow_8_compute__ensure_field_ref(__pyx_v_indices); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1597, __pyx_L1_error)
  __pyx_v_field_ref = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_6);

  /* "pyarrow/_compute.pyx":1598
 * 
 *         cdef CFieldRef field_ref = _ensure_field_ref(indices)
 *         self.wrapped.reset(new CStructFieldOptions(field_ref))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::StructFieldOptions(__pyx_v_field_ref));

  /* "pyarrow/_compute.pyx":1589
 * 
 * cdef class _StructFieldOptions(FunctionOptions):
 *     def _set_options(self, indices):             # <<<<<<<<<<<<<<
 * 
 *         if isinstance(indices, (list, tuple)) and not len(indices):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._StructFieldOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19_StructFieldOptions_2__reduce_cython__, "_StructFieldOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19_StructFieldOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_StructFieldOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19_StructFieldOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19_StructFieldOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._StructFieldOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19_StructFieldOptions_4__setstate_cython__, "_StructFieldOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19_StructFieldOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_StructFieldOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._StructFieldOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19_StructFieldOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19_StructFieldOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._StructFieldOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1612
 *     """
 * 
 *     def __init__(self, indices):             # <<<<<<<<<<<<<<
 *         self._set_options(indices)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18StructFieldOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18StructFieldOptions___init__, "StructFieldOptions.__init__(self, indices)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18StructFieldOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18StructFieldOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18StructFieldOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_18StructFieldOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_indices = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_indices,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1612, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1612, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1612, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1612, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 1612, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1612, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1612, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_indices = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1612, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.StructFieldOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18StructFieldOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_indices);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18StructFieldOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_indices) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1613
 * 
 *     def __init__(self, indices):
 *         self._set_options(indices)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_indices};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1613, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1612
 *     """
 * 
 *     def __init__(self, indices):             # <<<<<<<<<<<<<<
 *         self._set_options(indices)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.StructFieldOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1617
 * 
 * cdef class _ScalarAggregateOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CScalarAggregateOptions(skip_nulls, min_count))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_23_ScalarAggregateOptions__set_options, "_ScalarAggregateOptions._set_options(self, skip_nulls, min_count)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_23_ScalarAggregateOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_ScalarAggregateOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1617, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1617, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1617, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1617, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 1617, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1617, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1617, __pyx_L3_error)
    }
    __pyx_v_skip_nulls = values[0];
    __pyx_v_min_count = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1617, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ScalarAggregateOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_23_ScalarAggregateOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions *)__pyx_v_self), __pyx_v_skip_nulls, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_23_ScalarAggregateOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions *__pyx_v_self, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  uint32_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1618
 * cdef class _ScalarAggregateOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls, min_count):
 *         self.wrapped.reset(new CScalarAggregateOptions(skip_nulls, min_count))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_skip_nulls); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1618, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyLong_As_uint32_t(__pyx_v_min_count); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1618, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::ScalarAggregateOptions(__pyx_t_1, __pyx_t_2));

  /* "pyarrow/_compute.pyx":1617
 * 
 * cdef class _ScalarAggregateOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CScalarAggregateOptions(skip_nulls, min_count))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ScalarAggregateOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_23_ScalarAggregateOptions_2__reduce_cython__, "_ScalarAggregateOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_23_ScalarAggregateOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_ScalarAggregateOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_23_ScalarAggregateOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_23_ScalarAggregateOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ScalarAggregateOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_23_ScalarAggregateOptions_4__setstate_cython__, "_ScalarAggregateOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_23_ScalarAggregateOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_ScalarAggregateOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ScalarAggregateOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_23_ScalarAggregateOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_23_ScalarAggregateOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ScalarAggregateOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1631
 *     """
 * 
 *     def __init__(self, *, skip_nulls=True, min_count=1):             # <<<<<<<<<<<<<<
 *         self._set_options(skip_nulls, min_count)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_22ScalarAggregateOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_22ScalarAggregateOptions___init__, "ScalarAggregateOptions.__init__(self, *, skip_nulls=True, min_count=1)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_22ScalarAggregateOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22ScalarAggregateOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22ScalarAggregateOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_22ScalarAggregateOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1631, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1631, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1631, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 1631, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1631, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
    }
    __pyx_v_self = values[0];
    __pyx_v_skip_nulls = values[1];
    __pyx_v_min_count = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1631, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ScalarAggregateOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_22ScalarAggregateOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_skip_nulls, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_22ScalarAggregateOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1632
 * 
 *     def __init__(self, *, skip_nulls=True, min_count=1):
 *         self._set_options(skip_nulls, min_count)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_skip_nulls, __pyx_v_min_count};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1631
 *     """
 * 
 *     def __init__(self, *, skip_nulls=True, min_count=1):             # <<<<<<<<<<<<<<
 *         self._set_options(skip_nulls, min_count)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.ScalarAggregateOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1642
 *     }
 * 
 *     def _set_options(self, mode):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(new CCountOptions(self._mode_map[mode]))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_CountOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_CountOptions__set_options, "_CountOptions._set_options(self, mode)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_CountOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_CountOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_CountOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_CountOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_mode = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_mode,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1642, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1642, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1642, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1642, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1642, __pyx_L3_error)
    }
    __pyx_v_mode = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1642, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._CountOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_CountOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__CountOptions *)__pyx_v_self), __pyx_v_mode);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_CountOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__CountOptions *__pyx_v_self, PyObject *__pyx_v_mode) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  enum arrow::compute::CountOptions::CountMode __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  size_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1643
 * 
 *     def _set_options(self, mode):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(new CCountOptions(self._mode_map[mode]))
 *         except KeyError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "pyarrow/_compute.pyx":1644
 *     def _set_options(self, mode):
 *         try:
 *             self.wrapped.reset(new CCountOptions(self._mode_map[mode]))             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             _raise_invalid_function_option(mode, "count mode")
*/
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_mode_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1644, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_mode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1644, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = ((enum arrow::compute::CountOptions::CountMode)__Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_CountOptions_3a__3a_CountMode(__pyx_t_5)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1644, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::CountOptions(__pyx_t_6));

      /* "pyarrow/_compute.pyx":1643
 * 
 *     def _set_options(self, mode):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(new CCountOptions(self._mode_map[mode]))
 *         except KeyError:
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "pyarrow/_compute.pyx":1645
 *         try:
 *             self.wrapped.reset(new CCountOptions(self._mode_map[mode]))
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(mode, "count mode")
 * 
*/
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_7) {
      __Pyx_AddTraceback("pyarrow._compute._CountOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 1645, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_8);

      /* "pyarrow/_compute.pyx":1646
 *             self.wrapped.reset(new CCountOptions(self._mode_map[mode]))
 *         except KeyError:
 *             _raise_invalid_function_option(mode, "count mode")             # <<<<<<<<<<<<<<
 * 
 * 
*/
      __pyx_t_10 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1646, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_12 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
        assert(__pyx_t_10);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
        __pyx_t_12 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_10, __pyx_v_mode, __pyx_mstate_global->__pyx_kp_u_count_mode};
        __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_12, (3-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1646, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "pyarrow/_compute.pyx":1643
 * 
 *     def _set_options(self, mode):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(new CCountOptions(self._mode_map[mode]))
 *         except KeyError:
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "pyarrow/_compute.pyx":1642
 *     }
 * 
 *     def _set_options(self, mode):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(new CCountOptions(self._mode_map[mode]))
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("pyarrow._compute._CountOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_CountOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_CountOptions_2__reduce_cython__, "_CountOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_CountOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_CountOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_CountOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_CountOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_CountOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__CountOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_CountOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CountOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._CountOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_CountOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_CountOptions_4__setstate_cython__, "_CountOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_CountOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_CountOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_CountOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_CountOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._CountOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_CountOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__CountOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_CountOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CountOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._CountOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1660
 *     """
 * 
 *     def __init__(self, mode="only_valid"):             # <<<<<<<<<<<<<<
 *         self._set_options(mode)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12CountOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12CountOptions___init__, "CountOptions.__init__(self, mode='only_valid')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12CountOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12CountOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12CountOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12CountOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_mode = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_mode,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1660, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1660, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1660, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1660, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_only_valid)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 1660, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1660, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1660, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_only_valid)));
    }
    __pyx_v_self = values[0];
    __pyx_v_mode = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1660, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.CountOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12CountOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_mode);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12CountOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_mode) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1661
 * 
 *     def __init__(self, mode="only_valid"):
 *         self._set_options(mode)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_mode};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1661, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1660
 *     """
 * 
 *     def __init__(self, mode="only_valid"):             # <<<<<<<<<<<<<<
 *         self._set_options(mode)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.CountOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1665
 * 
 * cdef class _IndexOptions(FunctionOptions):
 *     def _set_options(self, scalar):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CIndexOptions(pyarrow_unwrap_scalar(scalar)))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_IndexOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_IndexOptions__set_options, "_IndexOptions._set_options(self, scalar)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_IndexOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_IndexOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_IndexOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_IndexOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_scalar = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_scalar,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1665, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1665, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1665, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1665, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1665, __pyx_L3_error)
    }
    __pyx_v_scalar = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1665, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._IndexOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_IndexOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__IndexOptions *)__pyx_v_self), __pyx_v_scalar);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_IndexOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__IndexOptions *__pyx_v_self, PyObject *__pyx_v_scalar) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::shared_ptr< arrow::Scalar>  __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1666
 * cdef class _IndexOptions(FunctionOptions):
 *     def _set_options(self, scalar):
 *         self.wrapped.reset(new CIndexOptions(pyarrow_unwrap_scalar(scalar)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_scalar(__pyx_v_scalar); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1666, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::IndexOptions(__pyx_t_1));

  /* "pyarrow/_compute.pyx":1665
 * 
 * cdef class _IndexOptions(FunctionOptions):
 *     def _set_options(self, scalar):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CIndexOptions(pyarrow_unwrap_scalar(scalar)))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._IndexOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_IndexOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_IndexOptions_2__reduce_cython__, "_IndexOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_IndexOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_IndexOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_IndexOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_IndexOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_IndexOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__IndexOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_IndexOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__IndexOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._IndexOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_IndexOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_IndexOptions_4__setstate_cython__, "_IndexOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_IndexOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_IndexOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_IndexOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_IndexOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._IndexOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_IndexOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__IndexOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_IndexOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__IndexOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._IndexOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1679
 *     """
 * 
 *     def __init__(self, value):             # <<<<<<<<<<<<<<
 *         self._set_options(value)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12IndexOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12IndexOptions___init__, "IndexOptions.__init__(self, value)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12IndexOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12IndexOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12IndexOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12IndexOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_value = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_value,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1679, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1679, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1679, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1679, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 1679, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1679, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1679, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_value = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1679, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.IndexOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12IndexOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_value);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12IndexOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1680
 * 
 *     def __init__(self, value):
 *         self._set_options(value)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_value};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1680, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1679
 *     """
 * 
 *     def __init__(self, value):             # <<<<<<<<<<<<<<
 *         self._set_options(value)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.IndexOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1690
 *     }
 * 
 *     def _set_options(self, query_key, occurrence):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_MapLookupOptions__set_options, "_MapLookupOptions._set_options(self, query_key, occurrence)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_MapLookupOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_MapLookupOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_query_key = 0;
  PyObject *__pyx_v_occurrence = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_query_key,&__pyx_mstate_global->__pyx_n_u_occurrence,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1690, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1690, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1690, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1690, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 1690, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1690, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1690, __pyx_L3_error)
    }
    __pyx_v_query_key = values[0];
    __pyx_v_occurrence = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1690, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._MapLookupOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_MapLookupOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions *)__pyx_v_self), __pyx_v_query_key, __pyx_v_occurrence);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_MapLookupOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions *__pyx_v_self, PyObject *__pyx_v_query_key, PyObject *__pyx_v_occurrence) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::shared_ptr< arrow::Scalar>  __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  enum arrow::compute::MapLookupOptions::Occurrence __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  size_t __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1691
 * 
 *     def _set_options(self, query_key, occurrence):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CMapLookupOptions(
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "pyarrow/_compute.pyx":1694
 *             self.wrapped.reset(
 *                 new CMapLookupOptions(
 *                     pyarrow_unwrap_scalar(query_key),             # <<<<<<<<<<<<<<
 *                     self._occurrence_map[occurrence]
 *                 )
*/
      __pyx_t_4 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_scalar(__pyx_v_query_key); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1694, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":1695
 *                 new CMapLookupOptions(
 *                     pyarrow_unwrap_scalar(query_key),
 *                     self._occurrence_map[occurrence]             # <<<<<<<<<<<<<<
 *                 )
 *             )
*/
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_occurrence_map); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1695, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_occurrence); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1695, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_7 = ((enum arrow::compute::MapLookupOptions::Occurrence)__Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_MapLookupOptions_3a__3a_Occurrence(__pyx_t_6)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1695, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "pyarrow/_compute.pyx":1692
 *     def _set_options(self, query_key, occurrence):
 *         try:
 *             self.wrapped.reset(             # <<<<<<<<<<<<<<
 *                 new CMapLookupOptions(
 *                     pyarrow_unwrap_scalar(query_key),
*/
      __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::MapLookupOptions(__pyx_t_4, __pyx_t_7));

      /* "pyarrow/_compute.pyx":1691
 * 
 *     def _set_options(self, query_key, occurrence):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CMapLookupOptions(
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "pyarrow/_compute.pyx":1698
 *                 )
 *             )
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(occurrence,
 *                                            "Should either be first, last, or all")
*/
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_8) {
      __Pyx_AddTraceback("pyarrow._compute._MapLookupOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(0, 1698, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_9);

      /* "pyarrow/_compute.pyx":1699
 *             )
 *         except KeyError:
 *             _raise_invalid_function_option(occurrence,             # <<<<<<<<<<<<<<
 *                                            "Should either be first, last, or all")
 * 
*/
      __pyx_t_11 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1699, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_13 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_12))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12);
        assert(__pyx_t_11);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
        __pyx_t_13 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_11, __pyx_v_occurrence, __pyx_mstate_global->__pyx_kp_u_Should_either_be_first_last_or_a};
        __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1699, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "pyarrow/_compute.pyx":1691
 * 
 *     def _set_options(self, query_key, occurrence):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CMapLookupOptions(
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "pyarrow/_compute.pyx":1690
 *     }
 * 
 *     def _set_options(self, query_key, occurrence):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("pyarrow._compute._MapLookupOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_MapLookupOptions_2__reduce_cython__, "_MapLookupOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_MapLookupOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_MapLookupOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_MapLookupOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_MapLookupOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._MapLookupOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_MapLookupOptions_4__setstate_cython__, "_MapLookupOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_MapLookupOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_MapLookupOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._MapLookupOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_MapLookupOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_MapLookupOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._MapLookupOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1716
 *     """
 * 
 *     def __init__(self, query_key, occurrence):             # <<<<<<<<<<<<<<
 *         if not isinstance(query_key, lib.Scalar):
 *             query_key = lib.scalar(query_key)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16MapLookupOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16MapLookupOptions___init__, "MapLookupOptions.__init__(self, query_key, occurrence)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16MapLookupOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16MapLookupOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16MapLookupOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16MapLookupOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_query_key = 0;
  PyObject *__pyx_v_occurrence = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_query_key,&__pyx_mstate_global->__pyx_n_u_occurrence,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1716, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1716, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1716, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1716, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1716, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(0, 1716, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1716, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1716, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1716, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_query_key = values[1];
    __pyx_v_occurrence = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1716, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.MapLookupOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16MapLookupOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_query_key, __pyx_v_occurrence);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16MapLookupOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_query_key, PyObject *__pyx_v_occurrence) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v_query_key);

  /* "pyarrow/_compute.pyx":1717
 * 
 *     def __init__(self, query_key, occurrence):
 *         if not isinstance(query_key, lib.Scalar):             # <<<<<<<<<<<<<<
 *             query_key = lib.scalar(query_key)
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_lib); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Scalar); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = PyObject_IsInstance(__pyx_v_query_key, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1717, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = (!__pyx_t_3);
  if (__pyx_t_4) {

    /* "pyarrow/_compute.pyx":1718
 *     def __init__(self, query_key, occurrence):
 *         if not isinstance(query_key, lib.Scalar):
 *             query_key = lib.scalar(query_key)             # <<<<<<<<<<<<<<
 * 
 *         self._set_options(query_key, occurrence)
*/
    __pyx_t_1 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_lib); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1718, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_scalar); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1718, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_1);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_query_key};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF_SET(__pyx_v_query_key, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "pyarrow/_compute.pyx":1717
 * 
 *     def __init__(self, query_key, occurrence):
 *         if not isinstance(query_key, lib.Scalar):             # <<<<<<<<<<<<<<
 *             query_key = lib.scalar(query_key)
 * 
*/
  }

  /* "pyarrow/_compute.pyx":1720
 *             query_key = lib.scalar(query_key)
 * 
 *         self._set_options(query_key, occurrence)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_6 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_6);
  __pyx_t_7 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_v_query_key, __pyx_v_occurrence};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1720, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1716
 *     """
 * 
 *     def __init__(self, query_key, occurrence):             # <<<<<<<<<<<<<<
 *         if not isinstance(query_key, lib.Scalar):
 *             query_key = lib.scalar(query_key)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pyarrow._compute.MapLookupOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_query_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1724
 * 
 * cdef class _ModeOptions(FunctionOptions):
 *     def _set_options(self, n, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CModeOptions(n, skip_nulls, min_count))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_ModeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_ModeOptions__set_options, "_ModeOptions._set_options(self, n, skip_nulls, min_count)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_ModeOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_ModeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_ModeOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_ModeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1724, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1724, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1724, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1724, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1724, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 1724, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1724, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1724, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1724, __pyx_L3_error)
    }
    __pyx_v_n = values[0];
    __pyx_v_skip_nulls = values[1];
    __pyx_v_min_count = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1724, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ModeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_ModeOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ModeOptions *)__pyx_v_self), __pyx_v_n, __pyx_v_skip_nulls, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_ModeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ModeOptions *__pyx_v_self, PyObject *__pyx_v_n, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
  bool __pyx_t_2;
  uint32_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1725
 * cdef class _ModeOptions(FunctionOptions):
 *     def _set_options(self, n, skip_nulls, min_count):
 *         self.wrapped.reset(new CModeOptions(n, skip_nulls, min_count))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int64_t(__pyx_v_n); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1725, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_skip_nulls); if (unlikely((__pyx_t_2 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1725, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyLong_As_uint32_t(__pyx_v_min_count); if (unlikely((__pyx_t_3 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1725, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::ModeOptions(__pyx_t_1, __pyx_t_2, __pyx_t_3));

  /* "pyarrow/_compute.pyx":1724
 * 
 * cdef class _ModeOptions(FunctionOptions):
 *     def _set_options(self, n, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CModeOptions(n, skip_nulls, min_count))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ModeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_ModeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_ModeOptions_2__reduce_cython__, "_ModeOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_ModeOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_ModeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_ModeOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_ModeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_ModeOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ModeOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_ModeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ModeOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ModeOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_ModeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_ModeOptions_4__setstate_cython__, "_ModeOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_ModeOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_ModeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_ModeOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_ModeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ModeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_ModeOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ModeOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_ModeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ModeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ModeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1740
 *     """
 * 
 *     def __init__(self, n=1, *, skip_nulls=True, min_count=0):             # <<<<<<<<<<<<<<
 *         self._set_options(n, skip_nulls, min_count)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11ModeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11ModeOptions___init__, "ModeOptions.__init__(self, n=1, *, skip_nulls=True, min_count=0)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11ModeOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11ModeOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11ModeOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11ModeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_n,&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1740, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1740, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1740, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1740, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 1740, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1740, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1740, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
    }
    __pyx_v_self = values[0];
    __pyx_v_n = values[1];
    __pyx_v_skip_nulls = values[2];
    __pyx_v_min_count = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1740, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ModeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11ModeOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_n, __pyx_v_skip_nulls, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11ModeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_n, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1741
 * 
 *     def __init__(self, n=1, *, skip_nulls=True, min_count=0):
 *         self._set_options(n, skip_nulls, min_count)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_n, __pyx_v_skip_nulls, __pyx_v_min_count};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1740
 *     """
 * 
 *     def __init__(self, n=1, *, skip_nulls=True, min_count=0):             # <<<<<<<<<<<<<<
 *         self._set_options(n, skip_nulls, min_count)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.ModeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1745
 * 
 * cdef class _SetLookupOptions(FunctionOptions):
 *     def _set_options(self, value_set, c_bool skip_nulls):             # <<<<<<<<<<<<<<
 *         cdef unique_ptr[CDatum] valset
 *         if isinstance(value_set, Array):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_SetLookupOptions__set_options, "_SetLookupOptions._set_options(self, value_set, bool skip_nulls)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_SetLookupOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_SetLookupOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_value_set = 0;
  bool __pyx_v_skip_nulls;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_value_set,&__pyx_mstate_global->__pyx_n_u_skip_nulls,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1745, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1745, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1745, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1745, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 1745, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1745, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1745, __pyx_L3_error)
    }
    __pyx_v_value_set = values[0];
    __pyx_v_skip_nulls = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_skip_nulls == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1745, __pyx_L3_error)
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1745, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SetLookupOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_SetLookupOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions *)__pyx_v_self), __pyx_v_value_set, __pyx_v_skip_nulls);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_SetLookupOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions *__pyx_v_self, PyObject *__pyx_v_value_set, bool __pyx_v_skip_nulls) {
  std::unique_ptr< arrow::Datum>  __pyx_v_valset;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  std::shared_ptr< arrow::Scalar>  __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1747
 *     def _set_options(self, value_set, c_bool skip_nulls):
 *         cdef unique_ptr[CDatum] valset
 *         if isinstance(value_set, Array):             # <<<<<<<<<<<<<<
 *             valset.reset(new CDatum((<Array> value_set).sp_array))
 *         elif isinstance(value_set, ChunkedArray):
*/
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_value_set, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Array); 
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1748
 *         cdef unique_ptr[CDatum] valset
 *         if isinstance(value_set, Array):
 *             valset.reset(new CDatum((<Array> value_set).sp_array))             # <<<<<<<<<<<<<<
 *         elif isinstance(value_set, ChunkedArray):
 *             valset.reset(
*/
    __pyx_v_valset.reset(new  arrow::Datum(((struct __pyx_obj_7pyarrow_3lib_Array *)__pyx_v_value_set)->sp_array));

    /* "pyarrow/_compute.pyx":1747
 *     def _set_options(self, value_set, c_bool skip_nulls):
 *         cdef unique_ptr[CDatum] valset
 *         if isinstance(value_set, Array):             # <<<<<<<<<<<<<<
 *             valset.reset(new CDatum((<Array> value_set).sp_array))
 *         elif isinstance(value_set, ChunkedArray):
*/
    goto __pyx_L3;
  }

  /* "pyarrow/_compute.pyx":1749
 *         if isinstance(value_set, Array):
 *             valset.reset(new CDatum((<Array> value_set).sp_array))
 *         elif isinstance(value_set, ChunkedArray):             # <<<<<<<<<<<<<<
 *             valset.reset(
 *                 new CDatum((<ChunkedArray> value_set).sp_chunked_array)
*/
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_value_set, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_ChunkedArray); 
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1750
 *             valset.reset(new CDatum((<Array> value_set).sp_array))
 *         elif isinstance(value_set, ChunkedArray):
 *             valset.reset(             # <<<<<<<<<<<<<<
 *                 new CDatum((<ChunkedArray> value_set).sp_chunked_array)
 *             )
*/
    __pyx_v_valset.reset(new  arrow::Datum(((struct __pyx_obj_7pyarrow_3lib_ChunkedArray *)__pyx_v_value_set)->sp_chunked_array));

    /* "pyarrow/_compute.pyx":1749
 *         if isinstance(value_set, Array):
 *             valset.reset(new CDatum((<Array> value_set).sp_array))
 *         elif isinstance(value_set, ChunkedArray):             # <<<<<<<<<<<<<<
 *             valset.reset(
 *                 new CDatum((<ChunkedArray> value_set).sp_chunked_array)
*/
    goto __pyx_L3;
  }

  /* "pyarrow/_compute.pyx":1753
 *                 new CDatum((<ChunkedArray> value_set).sp_chunked_array)
 *             )
 *         elif isinstance(value_set, Scalar):             # <<<<<<<<<<<<<<
 *             valset.reset(new CDatum((<Scalar> value_set).unwrap()))
 *         else:
*/
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_value_set, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Scalar); 
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":1754
 *             )
 *         elif isinstance(value_set, Scalar):
 *             valset.reset(new CDatum((<Scalar> value_set).unwrap()))             # <<<<<<<<<<<<<<
 *         else:
 *             _raise_invalid_function_option(value_set, "value set",
*/
    __pyx_t_2 = ((struct __pyx_vtabstruct_7pyarrow_3lib_Scalar *)((struct __pyx_obj_7pyarrow_3lib_Scalar *)__pyx_v_value_set)->__pyx_vtab)->unwrap(((struct __pyx_obj_7pyarrow_3lib_Scalar *)__pyx_v_value_set)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1754, __pyx_L1_error)
    __pyx_v_valset.reset(new  arrow::Datum(__pyx_t_2));

    /* "pyarrow/_compute.pyx":1753
 *                 new CDatum((<ChunkedArray> value_set).sp_chunked_array)
 *             )
 *         elif isinstance(value_set, Scalar):             # <<<<<<<<<<<<<<
 *             valset.reset(new CDatum((<Scalar> value_set).unwrap()))
 *         else:
*/
    goto __pyx_L3;
  }

  /* "pyarrow/_compute.pyx":1756
 *             valset.reset(new CDatum((<Scalar> value_set).unwrap()))
 *         else:
 *             _raise_invalid_function_option(value_set, "value set",             # <<<<<<<<<<<<<<
 *                                            exception_class=TypeError)
 * 
*/
  /*else*/ {
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1756, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);

    /* "pyarrow/_compute.pyx":1757
 *         else:
 *             _raise_invalid_function_option(value_set, "value set",
 *                                            exception_class=TypeError)             # <<<<<<<<<<<<<<
 * 
 *         self.wrapped.reset(new CSetLookupOptions(deref(valset), skip_nulls))
*/
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_4, __pyx_v_value_set, __pyx_mstate_global->__pyx_kp_u_value_set_2};
      __pyx_t_7 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1756, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_exception_class, ((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_t_7, __pyx_callargs+3, 0) < (0)) __PYX_ERR(0, 1756, __pyx_L1_error)
      __pyx_t_3 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1756, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "pyarrow/_compute.pyx":1759
 *                                            exception_class=TypeError)
 * 
 *         self.wrapped.reset(new CSetLookupOptions(deref(valset), skip_nulls))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::SetLookupOptions((*__pyx_v_valset), __pyx_v_skip_nulls));

  /* "pyarrow/_compute.pyx":1745
 * 
 * cdef class _SetLookupOptions(FunctionOptions):
 *     def _set_options(self, value_set, c_bool skip_nulls):             # <<<<<<<<<<<<<<
 *         cdef unique_ptr[CDatum] valset
 *         if isinstance(value_set, Array):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pyarrow._compute._SetLookupOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_SetLookupOptions_2__reduce_cython__, "_SetLookupOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_SetLookupOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_SetLookupOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_SetLookupOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_SetLookupOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SetLookupOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_SetLookupOptions_4__setstate_cython__, "_SetLookupOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_SetLookupOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_SetLookupOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SetLookupOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_SetLookupOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_SetLookupOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SetLookupOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1776
 *     """
 * 
 *     def __init__(self, value_set, *, skip_nulls=False):             # <<<<<<<<<<<<<<
 *         self._set_options(value_set, skip_nulls)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16SetLookupOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16SetLookupOptions___init__, "SetLookupOptions.__init__(self, value_set, *, skip_nulls=False)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16SetLookupOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16SetLookupOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16SetLookupOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16SetLookupOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_value_set = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_value_set,&__pyx_mstate_global->__pyx_n_u_skip_nulls,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1776, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1776, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1776, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1776, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 1776, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1776, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1776, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_self = values[0];
    __pyx_v_value_set = values[1];
    __pyx_v_skip_nulls = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1776, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.SetLookupOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16SetLookupOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_value_set, __pyx_v_skip_nulls);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16SetLookupOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_value_set, PyObject *__pyx_v_skip_nulls) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1777
 * 
 *     def __init__(self, value_set, *, skip_nulls=False):
 *         self._set_options(value_set, skip_nulls)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_value_set, __pyx_v_skip_nulls};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1776
 *     """
 * 
 *     def __init__(self, value_set, *, skip_nulls=False):             # <<<<<<<<<<<<<<
 *         self._set_options(value_set, skip_nulls)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.SetLookupOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1788
 *     }
 * 
 *     def _set_options(self, format, unit, error_is_null):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_StrptimeOptions__set_options, "_StrptimeOptions._set_options(self, format, unit, error_is_null)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_StrptimeOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrptimeOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_format = 0;
  PyObject *__pyx_v_unit = 0;
  PyObject *__pyx_v_error_is_null = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_format,&__pyx_mstate_global->__pyx_n_u_unit,&__pyx_mstate_global->__pyx_n_u_error_is_null,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1788, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1788, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1788, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1788, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1788, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 1788, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1788, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1788, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1788, __pyx_L3_error)
    }
    __pyx_v_format = values[0];
    __pyx_v_unit = values[1];
    __pyx_v_error_is_null = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1788, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._StrptimeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_StrptimeOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions *)__pyx_v_self), __pyx_v_format, __pyx_v_unit, __pyx_v_error_is_null);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrptimeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions *__pyx_v_self, PyObject *__pyx_v_format, PyObject *__pyx_v_unit, PyObject *__pyx_v_error_is_null) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  std::string __pyx_t_8;
  enum  arrow::TimeUnit::type __pyx_t_9;
  bool __pyx_t_10;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1789
 * 
 *     def _set_options(self, format, unit, error_is_null):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CStrptimeOptions(tobytes(format), self._unit_map[unit],
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "pyarrow/_compute.pyx":1791
 *         try:
 *             self.wrapped.reset(
 *                 new CStrptimeOptions(tobytes(format), self._unit_map[unit],             # <<<<<<<<<<<<<<
 *                                      error_is_null)
 *             )
*/
      __pyx_t_5 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1791, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        assert(__pyx_t_5);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
        __pyx_t_7 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_format};
        __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1791, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_t_8 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1791, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_unit_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1791, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_unit); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1791, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_9 = ((enum  arrow::TimeUnit::type)__Pyx_PyLong_As_enum____arrow_3a__3a_TimeUnit_3a__3a_type(__pyx_t_6)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1791, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "pyarrow/_compute.pyx":1792
 *             self.wrapped.reset(
 *                 new CStrptimeOptions(tobytes(format), self._unit_map[unit],
 *                                      error_is_null)             # <<<<<<<<<<<<<<
 *             )
 *         except KeyError:
*/
      __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_error_is_null); if (unlikely((__pyx_t_10 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1792, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":1790
 *     def _set_options(self, format, unit, error_is_null):
 *         try:
 *             self.wrapped.reset(             # <<<<<<<<<<<<<<
 *                 new CStrptimeOptions(tobytes(format), self._unit_map[unit],
 *                                      error_is_null)
*/
      __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::StrptimeOptions(__pyx_t_8, __pyx_t_9, __pyx_t_10));

      /* "pyarrow/_compute.pyx":1789
 * 
 *     def _set_options(self, format, unit, error_is_null):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CStrptimeOptions(tobytes(format), self._unit_map[unit],
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "pyarrow/_compute.pyx":1794
 *                                      error_is_null)
 *             )
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(unit, "time unit")
 * 
*/
    __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_11) {
      __Pyx_AddTraceback("pyarrow._compute._StrptimeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(0, 1794, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);

      /* "pyarrow/_compute.pyx":1795
 *             )
 *         except KeyError:
 *             _raise_invalid_function_option(unit, "time unit")             # <<<<<<<<<<<<<<
 * 
 * 
*/
      __pyx_t_13 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1795, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_7 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_14))) {
        __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14);
        assert(__pyx_t_13);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_14);
        __Pyx_INCREF(__pyx_t_13);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_14, __pyx__function);
        __pyx_t_7 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_v_unit, __pyx_mstate_global->__pyx_kp_u_time_unit};
        __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_14, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1795, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_12);
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "pyarrow/_compute.pyx":1789
 * 
 *     def _set_options(self, format, unit, error_is_null):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CStrptimeOptions(tobytes(format), self._unit_map[unit],
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "pyarrow/_compute.pyx":1788
 *     }
 * 
 *     def _set_options(self, format, unit, error_is_null):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pyarrow._compute._StrptimeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_StrptimeOptions_2__reduce_cython__, "_StrptimeOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_StrptimeOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrptimeOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_StrptimeOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrptimeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._StrptimeOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_StrptimeOptions_4__setstate_cython__, "_StrptimeOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_StrptimeOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrptimeOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._StrptimeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_StrptimeOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrptimeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._StrptimeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1816
 *     """
 * 
 *     def __init__(self, format, unit, error_is_null=False):             # <<<<<<<<<<<<<<
 *         self._set_options(format, unit, error_is_null)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15StrptimeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15StrptimeOptions___init__, "StrptimeOptions.__init__(self, format, unit, error_is_null=False)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15StrptimeOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15StrptimeOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15StrptimeOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15StrptimeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_format = 0;
  PyObject *__pyx_v_unit = 0;
  PyObject *__pyx_v_error_is_null = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_format,&__pyx_mstate_global->__pyx_n_u_unit,&__pyx_mstate_global->__pyx_n_u_error_is_null,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1816, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1816, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1816, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1816, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1816, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1816, __pyx_L3_error)
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(0, 1816, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1816, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1816, __pyx_L3_error)
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1816, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1816, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_self = values[0];
    __pyx_v_format = values[1];
    __pyx_v_unit = values[2];
    __pyx_v_error_is_null = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(0, 1816, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.StrptimeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15StrptimeOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_format, __pyx_v_unit, __pyx_v_error_is_null);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15StrptimeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_format, PyObject *__pyx_v_unit, PyObject *__pyx_v_error_is_null) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1817
 * 
 *     def __init__(self, format, unit, error_is_null=False):
 *         self._set_options(format, unit, error_is_null)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_format, __pyx_v_unit, __pyx_v_error_is_null};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1817, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1816
 *     """
 * 
 *     def __init__(self, format, unit, error_is_null=False):             # <<<<<<<<<<<<<<
 *         self._set_options(format, unit, error_is_null)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.StrptimeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1821
 * 
 * cdef class _StrftimeOptions(FunctionOptions):
 *     def _set_options(self, format, locale):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CStrftimeOptions(tobytes(format), tobytes(locale))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_StrftimeOptions__set_options, "_StrftimeOptions._set_options(self, format, locale)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_StrftimeOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrftimeOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_format = 0;
  PyObject *__pyx_v_locale = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_format,&__pyx_mstate_global->__pyx_n_u_locale,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1821, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1821, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1821, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1821, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 1821, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1821, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1821, __pyx_L3_error)
    }
    __pyx_v_format = values[0];
    __pyx_v_locale = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1821, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._StrftimeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_StrftimeOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions *)__pyx_v_self), __pyx_v_format, __pyx_v_locale);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrftimeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions *__pyx_v_self, PyObject *__pyx_v_format, PyObject *__pyx_v_locale) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  std::string __pyx_t_5;
  std::string __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1823
 *     def _set_options(self, format, locale):
 *         self.wrapped.reset(
 *             new CStrftimeOptions(tobytes(format), tobytes(locale))             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_format};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1823, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1823, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_locale};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1823, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1823, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1822
 * cdef class _StrftimeOptions(FunctionOptions):
 *     def _set_options(self, format, locale):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CStrftimeOptions(tobytes(format), tobytes(locale))
 *         )
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::StrftimeOptions(__pyx_t_5, __pyx_t_6));

  /* "pyarrow/_compute.pyx":1821
 * 
 * cdef class _StrftimeOptions(FunctionOptions):
 *     def _set_options(self, format, locale):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CStrftimeOptions(tobytes(format), tobytes(locale))
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._StrftimeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_StrftimeOptions_2__reduce_cython__, "_StrftimeOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_StrftimeOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrftimeOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_StrftimeOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrftimeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._StrftimeOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_StrftimeOptions_4__setstate_cython__, "_StrftimeOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_StrftimeOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrftimeOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._StrftimeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_StrftimeOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_StrftimeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._StrftimeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1839
 *     """
 * 
 *     def __init__(self, format="%Y-%m-%dT%H:%M:%S", locale="C"):             # <<<<<<<<<<<<<<
 *         self._set_options(format, locale)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15StrftimeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15StrftimeOptions___init__, "StrftimeOptions.__init__(self, format='%Y-%m-%dT%H:%M:%S', locale='C')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15StrftimeOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15StrftimeOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15StrftimeOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15StrftimeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_format = 0;
  PyObject *__pyx_v_locale = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_format,&__pyx_mstate_global->__pyx_n_u_locale,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1839, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1839, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1839, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1839, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1839, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_kp_u_Y_m_dT_H_M_S)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_C)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(0, 1839, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1839, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1839, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1839, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_kp_u_Y_m_dT_H_M_S)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_C)));
    }
    __pyx_v_self = values[0];
    __pyx_v_format = values[1];
    __pyx_v_locale = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1839, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.StrftimeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15StrftimeOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_format, __pyx_v_locale);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15StrftimeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_format, PyObject *__pyx_v_locale) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1840
 * 
 *     def __init__(self, format="%Y-%m-%dT%H:%M:%S", locale="C"):
 *         self._set_options(format, locale)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_format, __pyx_v_locale};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1839
 *     """
 * 
 *     def __init__(self, format="%Y-%m-%dT%H:%M:%S", locale="C"):             # <<<<<<<<<<<<<<
 *         self._set_options(format, locale)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.StrftimeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1844
 * 
 * cdef class _DayOfWeekOptions(FunctionOptions):
 *     def _set_options(self, count_from_zero, week_start):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CDayOfWeekOptions(count_from_zero, week_start)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_DayOfWeekOptions__set_options, "_DayOfWeekOptions._set_options(self, count_from_zero, week_start)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_DayOfWeekOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_DayOfWeekOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_count_from_zero = 0;
  PyObject *__pyx_v_week_start = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_count_from_zero,&__pyx_mstate_global->__pyx_n_u_week_start,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1844, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1844, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1844, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1844, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 1844, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1844, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1844, __pyx_L3_error)
    }
    __pyx_v_count_from_zero = values[0];
    __pyx_v_week_start = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1844, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._DayOfWeekOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_DayOfWeekOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions *)__pyx_v_self), __pyx_v_count_from_zero, __pyx_v_week_start);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_DayOfWeekOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions *__pyx_v_self, PyObject *__pyx_v_count_from_zero, PyObject *__pyx_v_week_start) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  uint32_t __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1846
 *     def _set_options(self, count_from_zero, week_start):
 *         self.wrapped.reset(
 *             new CDayOfWeekOptions(count_from_zero, week_start)             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_count_from_zero); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1846, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyLong_As_uint32_t(__pyx_v_week_start); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1846, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1845
 * cdef class _DayOfWeekOptions(FunctionOptions):
 *     def _set_options(self, count_from_zero, week_start):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CDayOfWeekOptions(count_from_zero, week_start)
 *         )
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::DayOfWeekOptions(__pyx_t_1, __pyx_t_2));

  /* "pyarrow/_compute.pyx":1844
 * 
 * cdef class _DayOfWeekOptions(FunctionOptions):
 *     def _set_options(self, count_from_zero, week_start):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CDayOfWeekOptions(count_from_zero, week_start)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._DayOfWeekOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_DayOfWeekOptions_2__reduce_cython__, "_DayOfWeekOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_DayOfWeekOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_DayOfWeekOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_DayOfWeekOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_DayOfWeekOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._DayOfWeekOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_DayOfWeekOptions_4__setstate_cython__, "_DayOfWeekOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_DayOfWeekOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_DayOfWeekOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._DayOfWeekOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_DayOfWeekOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_DayOfWeekOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._DayOfWeekOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1863
 *     """
 * 
 *     def __init__(self, *, count_from_zero=True, week_start=1):             # <<<<<<<<<<<<<<
 *         self._set_options(count_from_zero, week_start)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16DayOfWeekOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16DayOfWeekOptions___init__, "DayOfWeekOptions.__init__(self, *, count_from_zero=True, week_start=1)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16DayOfWeekOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16DayOfWeekOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16DayOfWeekOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16DayOfWeekOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_count_from_zero = 0;
  PyObject *__pyx_v_week_start = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_count_from_zero,&__pyx_mstate_global->__pyx_n_u_week_start,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1863, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1863, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1863, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 1863, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1863, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
    }
    __pyx_v_self = values[0];
    __pyx_v_count_from_zero = values[1];
    __pyx_v_week_start = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1863, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.DayOfWeekOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16DayOfWeekOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_count_from_zero, __pyx_v_week_start);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16DayOfWeekOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_count_from_zero, PyObject *__pyx_v_week_start) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1864
 * 
 *     def __init__(self, *, count_from_zero=True, week_start=1):
 *         self._set_options(count_from_zero, week_start)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_count_from_zero, __pyx_v_week_start};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1864, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1863
 *     """
 * 
 *     def __init__(self, *, count_from_zero=True, week_start=1):             # <<<<<<<<<<<<<<
 *         self._set_options(count_from_zero, week_start)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.DayOfWeekOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1868
 * 
 * cdef class _WeekOptions(FunctionOptions):
 *     def _set_options(self, week_starts_monday, count_from_zero,             # <<<<<<<<<<<<<<
 *                      first_week_is_fully_in_year):
 *         self.wrapped.reset(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_WeekOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_WeekOptions__set_options, "_WeekOptions._set_options(self, week_starts_monday, count_from_zero, first_week_is_fully_in_year)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_WeekOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_WeekOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_WeekOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_WeekOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_week_starts_monday = 0;
  PyObject *__pyx_v_count_from_zero = 0;
  PyObject *__pyx_v_first_week_is_fully_in_year = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_week_starts_monday,&__pyx_mstate_global->__pyx_n_u_count_from_zero,&__pyx_mstate_global->__pyx_n_u_first_week_is_fully_in_year,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1868, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1868, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1868, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1868, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1868, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 1868, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1868, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1868, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1868, __pyx_L3_error)
    }
    __pyx_v_week_starts_monday = values[0];
    __pyx_v_count_from_zero = values[1];
    __pyx_v_first_week_is_fully_in_year = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1868, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._WeekOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_WeekOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__WeekOptions *)__pyx_v_self), __pyx_v_week_starts_monday, __pyx_v_count_from_zero, __pyx_v_first_week_is_fully_in_year);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_WeekOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__WeekOptions *__pyx_v_self, PyObject *__pyx_v_week_starts_monday, PyObject *__pyx_v_count_from_zero, PyObject *__pyx_v_first_week_is_fully_in_year) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  bool __pyx_t_2;
  bool __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1871
 *                      first_week_is_fully_in_year):
 *         self.wrapped.reset(
 *             new CWeekOptions(week_starts_monday, count_from_zero,             # <<<<<<<<<<<<<<
 *                              first_week_is_fully_in_year)
 *         )
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_week_starts_monday); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1871, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_count_from_zero); if (unlikely((__pyx_t_2 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1871, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1872
 *         self.wrapped.reset(
 *             new CWeekOptions(week_starts_monday, count_from_zero,
 *                              first_week_is_fully_in_year)             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_first_week_is_fully_in_year); if (unlikely((__pyx_t_3 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1872, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1870
 *     def _set_options(self, week_starts_monday, count_from_zero,
 *                      first_week_is_fully_in_year):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CWeekOptions(week_starts_monday, count_from_zero,
 *                              first_week_is_fully_in_year)
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::WeekOptions(__pyx_t_1, __pyx_t_2, __pyx_t_3));

  /* "pyarrow/_compute.pyx":1868
 * 
 * cdef class _WeekOptions(FunctionOptions):
 *     def _set_options(self, week_starts_monday, count_from_zero,             # <<<<<<<<<<<<<<
 *                      first_week_is_fully_in_year):
 *         self.wrapped.reset(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._WeekOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_WeekOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_WeekOptions_2__reduce_cython__, "_WeekOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_WeekOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_WeekOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_WeekOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_WeekOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_WeekOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__WeekOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_WeekOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__WeekOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._WeekOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_WeekOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_WeekOptions_4__setstate_cython__, "_WeekOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_WeekOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_WeekOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_WeekOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_WeekOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._WeekOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_WeekOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__WeekOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_WeekOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__WeekOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._WeekOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1895
 *     """
 * 
 *     def __init__(self, *, week_starts_monday=True, count_from_zero=False,             # <<<<<<<<<<<<<<
 *                  first_week_is_fully_in_year=False):
 *         self._set_options(week_starts_monday,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11WeekOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11WeekOptions___init__, "WeekOptions.__init__(self, *, week_starts_monday=True, count_from_zero=False, first_week_is_fully_in_year=False)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11WeekOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11WeekOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11WeekOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11WeekOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_week_starts_monday = 0;
  PyObject *__pyx_v_count_from_zero = 0;
  PyObject *__pyx_v_first_week_is_fully_in_year = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_week_starts_monday,&__pyx_mstate_global->__pyx_n_u_count_from_zero,&__pyx_mstate_global->__pyx_n_u_first_week_is_fully_in_year,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1895, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1895, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1895, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));

      /* "pyarrow/_compute.pyx":1896
 * 
 *     def __init__(self, *, week_starts_monday=True, count_from_zero=False,
 *                  first_week_is_fully_in_year=False):             # <<<<<<<<<<<<<<
 *         self._set_options(week_starts_monday,
 *                           count_from_zero, first_week_is_fully_in_year)
*/
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 1895, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1895, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_self = values[0];
    __pyx_v_week_starts_monday = values[1];
    __pyx_v_count_from_zero = values[2];
    __pyx_v_first_week_is_fully_in_year = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1895, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.WeekOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11WeekOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_week_starts_monday, __pyx_v_count_from_zero, __pyx_v_first_week_is_fully_in_year);

  /* "pyarrow/_compute.pyx":1895
 *     """
 * 
 *     def __init__(self, *, week_starts_monday=True, count_from_zero=False,             # <<<<<<<<<<<<<<
 *                  first_week_is_fully_in_year=False):
 *         self._set_options(week_starts_monday,
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11WeekOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_week_starts_monday, PyObject *__pyx_v_count_from_zero, PyObject *__pyx_v_first_week_is_fully_in_year) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1897
 *     def __init__(self, *, week_starts_monday=True, count_from_zero=False,
 *                  first_week_is_fully_in_year=False):
 *         self._set_options(week_starts_monday,             # <<<<<<<<<<<<<<
 *                           count_from_zero, first_week_is_fully_in_year)
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);

  /* "pyarrow/_compute.pyx":1898
 *                  first_week_is_fully_in_year=False):
 *         self._set_options(week_starts_monday,
 *                           count_from_zero, first_week_is_fully_in_year)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_week_starts_monday, __pyx_v_count_from_zero, __pyx_v_first_week_is_fully_in_year};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1897, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1895
 *     """
 * 
 *     def __init__(self, *, week_starts_monday=True, count_from_zero=False,             # <<<<<<<<<<<<<<
 *                  first_week_is_fully_in_year=False):
 *         self._set_options(week_starts_monday,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.WeekOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1913
 *     }
 * 
 *     def _set_options(self, timezone, ambiguous, nonexistent):             # <<<<<<<<<<<<<<
 *         if ambiguous not in self._ambiguous_map:
 *             _raise_invalid_function_option(ambiguous,
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_22_AssumeTimezoneOptions__set_options, "_AssumeTimezoneOptions._set_options(self, timezone, ambiguous, nonexistent)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_22_AssumeTimezoneOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_AssumeTimezoneOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_timezone = 0;
  PyObject *__pyx_v_ambiguous = 0;
  PyObject *__pyx_v_nonexistent = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_timezone,&__pyx_mstate_global->__pyx_n_u_ambiguous,&__pyx_mstate_global->__pyx_n_u_nonexistent,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1913, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1913, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1913, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1913, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1913, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 1913, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1913, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1913, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1913, __pyx_L3_error)
    }
    __pyx_v_timezone = values[0];
    __pyx_v_ambiguous = values[1];
    __pyx_v_nonexistent = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1913, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._AssumeTimezoneOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_22_AssumeTimezoneOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions *)__pyx_v_self), __pyx_v_timezone, __pyx_v_ambiguous, __pyx_v_nonexistent);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_22_AssumeTimezoneOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions *__pyx_v_self, PyObject *__pyx_v_timezone, PyObject *__pyx_v_ambiguous, PyObject *__pyx_v_nonexistent) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  std::string __pyx_t_6;
  enum arrow::compute::AssumeTimezoneOptions::Ambiguous __pyx_t_7;
  enum arrow::compute::AssumeTimezoneOptions::Nonexistent __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1914
 * 
 *     def _set_options(self, timezone, ambiguous, nonexistent):
 *         if ambiguous not in self._ambiguous_map:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(ambiguous,
 *                                            "'ambiguous' timestamp handling")
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_ambiguous_map); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_ambiguous, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1914, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "pyarrow/_compute.pyx":1915
 *     def _set_options(self, timezone, ambiguous, nonexistent):
 *         if ambiguous not in self._ambiguous_map:
 *             _raise_invalid_function_option(ambiguous,             # <<<<<<<<<<<<<<
 *                                            "'ambiguous' timestamp handling")
 *         if nonexistent not in self._nonexistent_map:
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1915, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_ambiguous, __pyx_mstate_global->__pyx_kp_u_ambiguous_timestamp_handling};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1915, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "pyarrow/_compute.pyx":1914
 * 
 *     def _set_options(self, timezone, ambiguous, nonexistent):
 *         if ambiguous not in self._ambiguous_map:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(ambiguous,
 *                                            "'ambiguous' timestamp handling")
*/
  }

  /* "pyarrow/_compute.pyx":1917
 *             _raise_invalid_function_option(ambiguous,
 *                                            "'ambiguous' timestamp handling")
 *         if nonexistent not in self._nonexistent_map:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(nonexistent,
 *                                            "'nonexistent' timestamp handling")
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_nonexistent_map); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_nonexistent, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1917, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "pyarrow/_compute.pyx":1918
 *                                            "'ambiguous' timestamp handling")
 *         if nonexistent not in self._nonexistent_map:
 *             _raise_invalid_function_option(nonexistent,             # <<<<<<<<<<<<<<
 *                                            "'nonexistent' timestamp handling")
 *         self.wrapped.reset(
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1918, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_nonexistent, __pyx_mstate_global->__pyx_kp_u_nonexistent_timestamp_handling};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1918, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "pyarrow/_compute.pyx":1917
 *             _raise_invalid_function_option(ambiguous,
 *                                            "'ambiguous' timestamp handling")
 *         if nonexistent not in self._nonexistent_map:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(nonexistent,
 *                                            "'nonexistent' timestamp handling")
*/
  }

  /* "pyarrow/_compute.pyx":1921
 *                                            "'nonexistent' timestamp handling")
 *         self.wrapped.reset(
 *             new CAssumeTimezoneOptions(tobytes(timezone),             # <<<<<<<<<<<<<<
 *                                        self._ambiguous_map[ambiguous],
 *                                        self._nonexistent_map[nonexistent])
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_timezone};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1922
 *         self.wrapped.reset(
 *             new CAssumeTimezoneOptions(tobytes(timezone),
 *                                        self._ambiguous_map[ambiguous],             # <<<<<<<<<<<<<<
 *                                        self._nonexistent_map[nonexistent])
 *         )
*/
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_ambiguous_map); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_ambiguous); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = ((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)__Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Ambiguous(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1922, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1923
 *             new CAssumeTimezoneOptions(tobytes(timezone),
 *                                        self._ambiguous_map[ambiguous],
 *                                        self._nonexistent_map[nonexistent])             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_nonexistent_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_nonexistent); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_8 = ((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)__Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Nonexistent(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1923, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1920
 *             _raise_invalid_function_option(nonexistent,
 *                                            "'nonexistent' timestamp handling")
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CAssumeTimezoneOptions(tobytes(timezone),
 *                                        self._ambiguous_map[ambiguous],
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::AssumeTimezoneOptions(__pyx_t_6, __pyx_t_7, __pyx_t_8));

  /* "pyarrow/_compute.pyx":1913
 *     }
 * 
 *     def _set_options(self, timezone, ambiguous, nonexistent):             # <<<<<<<<<<<<<<
 *         if ambiguous not in self._ambiguous_map:
 *             _raise_invalid_function_option(ambiguous,
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute._AssumeTimezoneOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_22_AssumeTimezoneOptions_2__reduce_cython__, "_AssumeTimezoneOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_22_AssumeTimezoneOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_AssumeTimezoneOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_22_AssumeTimezoneOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_22_AssumeTimezoneOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._AssumeTimezoneOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_22_AssumeTimezoneOptions_4__setstate_cython__, "_AssumeTimezoneOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_22_AssumeTimezoneOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_AssumeTimezoneOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._AssumeTimezoneOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_22_AssumeTimezoneOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_22_AssumeTimezoneOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._AssumeTimezoneOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1943
 *     """
 * 
 *     def __init__(self, timezone, *, ambiguous="raise", nonexistent="raise"):             # <<<<<<<<<<<<<<
 *         self._set_options(timezone, ambiguous, nonexistent)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21AssumeTimezoneOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_21AssumeTimezoneOptions___init__, "AssumeTimezoneOptions.__init__(self, timezone, *, ambiguous='raise', nonexistent='raise')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_21AssumeTimezoneOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21AssumeTimezoneOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21AssumeTimezoneOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_21AssumeTimezoneOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_timezone = 0;
  PyObject *__pyx_v_ambiguous = 0;
  PyObject *__pyx_v_nonexistent = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_timezone,&__pyx_mstate_global->__pyx_n_u_ambiguous,&__pyx_mstate_global->__pyx_n_u_nonexistent,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1943, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1943, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1943, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1943, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_raise)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_raise)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 1943, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1943, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1943, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_raise)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_raise)));
    }
    __pyx_v_self = values[0];
    __pyx_v_timezone = values[1];
    __pyx_v_ambiguous = values[2];
    __pyx_v_nonexistent = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1943, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.AssumeTimezoneOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21AssumeTimezoneOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_timezone, __pyx_v_ambiguous, __pyx_v_nonexistent);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21AssumeTimezoneOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_timezone, PyObject *__pyx_v_ambiguous, PyObject *__pyx_v_nonexistent) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1944
 * 
 *     def __init__(self, timezone, *, ambiguous="raise", nonexistent="raise"):
 *         self._set_options(timezone, ambiguous, nonexistent)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_timezone, __pyx_v_ambiguous, __pyx_v_nonexistent};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1944, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1943
 *     """
 * 
 *     def __init__(self, timezone, *, ambiguous="raise", nonexistent="raise"):             # <<<<<<<<<<<<<<
 *         self._set_options(timezone, ambiguous, nonexistent)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.AssumeTimezoneOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1948
 * 
 * cdef class _NullOptions(FunctionOptions):
 *     def _set_options(self, nan_is_null):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CNullOptions(nan_is_null))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_NullOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_NullOptions__set_options, "_NullOptions._set_options(self, nan_is_null)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_NullOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_NullOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_NullOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_NullOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_nan_is_null = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nan_is_null,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1948, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1948, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1948, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 1948, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1948, __pyx_L3_error)
    }
    __pyx_v_nan_is_null = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1948, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._NullOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_NullOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__NullOptions *)__pyx_v_self), __pyx_v_nan_is_null);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_NullOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__NullOptions *__pyx_v_self, PyObject *__pyx_v_nan_is_null) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1949
 * cdef class _NullOptions(FunctionOptions):
 *     def _set_options(self, nan_is_null):
 *         self.wrapped.reset(new CNullOptions(nan_is_null))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_nan_is_null); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1949, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::NullOptions(__pyx_t_1));

  /* "pyarrow/_compute.pyx":1948
 * 
 * cdef class _NullOptions(FunctionOptions):
 *     def _set_options(self, nan_is_null):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CNullOptions(nan_is_null))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._NullOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_NullOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_NullOptions_2__reduce_cython__, "_NullOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_NullOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_NullOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_NullOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_NullOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_NullOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__NullOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_NullOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__NullOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._NullOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_NullOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_NullOptions_4__setstate_cython__, "_NullOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_NullOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_NullOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_NullOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_NullOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._NullOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_NullOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__NullOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_NullOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__NullOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._NullOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1962
 *     """
 * 
 *     def __init__(self, *, nan_is_null=False):             # <<<<<<<<<<<<<<
 *         self._set_options(nan_is_null)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11NullOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11NullOptions___init__, "NullOptions.__init__(self, *, nan_is_null=False)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11NullOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11NullOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11NullOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11NullOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_nan_is_null = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_nan_is_null,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1962, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1962, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1962, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 1962, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1962, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_self = values[0];
    __pyx_v_nan_is_null = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1962, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.NullOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11NullOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_nan_is_null);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11NullOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_nan_is_null) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1963
 * 
 *     def __init__(self, *, nan_is_null=False):
 *         self._set_options(nan_is_null)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_nan_is_null};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1962
 *     """
 * 
 *     def __init__(self, *, nan_is_null=False):             # <<<<<<<<<<<<<<
 *         self._set_options(nan_is_null)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.NullOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1967
 * 
 * cdef class _VarianceOptions(FunctionOptions):
 *     def _set_options(self, ddof, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CVarianceOptions(ddof, skip_nulls, min_count))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_VarianceOptions__set_options, "_VarianceOptions._set_options(self, ddof, skip_nulls, min_count)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_VarianceOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_VarianceOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_ddof = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_ddof,&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1967, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1967, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1967, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1967, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1967, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 1967, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1967, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1967, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1967, __pyx_L3_error)
    }
    __pyx_v_ddof = values[0];
    __pyx_v_skip_nulls = values[1];
    __pyx_v_min_count = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1967, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._VarianceOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_VarianceOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__VarianceOptions *)__pyx_v_self), __pyx_v_ddof, __pyx_v_skip_nulls, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_VarianceOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__VarianceOptions *__pyx_v_self, PyObject *__pyx_v_ddof, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  bool __pyx_t_2;
  uint32_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1968
 * cdef class _VarianceOptions(FunctionOptions):
 *     def _set_options(self, ddof, skip_nulls, min_count):
 *         self.wrapped.reset(new CVarianceOptions(ddof, skip_nulls, min_count))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int(__pyx_v_ddof); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1968, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_skip_nulls); if (unlikely((__pyx_t_2 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1968, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyLong_As_uint32_t(__pyx_v_min_count); if (unlikely((__pyx_t_3 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1968, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::VarianceOptions(__pyx_t_1, __pyx_t_2, __pyx_t_3));

  /* "pyarrow/_compute.pyx":1967
 * 
 * cdef class _VarianceOptions(FunctionOptions):
 *     def _set_options(self, ddof, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CVarianceOptions(ddof, skip_nulls, min_count))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._VarianceOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_VarianceOptions_2__reduce_cython__, "_VarianceOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_VarianceOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_VarianceOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_VarianceOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__VarianceOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_VarianceOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__VarianceOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._VarianceOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_VarianceOptions_4__setstate_cython__, "_VarianceOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_VarianceOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_VarianceOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._VarianceOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_VarianceOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__VarianceOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_VarianceOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__VarianceOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._VarianceOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1983
 *     """
 * 
 *     def __init__(self, *, ddof=0, skip_nulls=True, min_count=0):             # <<<<<<<<<<<<<<
 *         self._set_options(ddof, skip_nulls, min_count)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15VarianceOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15VarianceOptions___init__, "VarianceOptions.__init__(self, *, ddof=0, skip_nulls=True, min_count=0)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15VarianceOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15VarianceOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15VarianceOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15VarianceOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_ddof = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_ddof,&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1983, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1983, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 1983, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 1983, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1983, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
    }
    __pyx_v_self = values[0];
    __pyx_v_ddof = values[1];
    __pyx_v_skip_nulls = values[2];
    __pyx_v_min_count = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1983, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.VarianceOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15VarianceOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_ddof, __pyx_v_skip_nulls, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15VarianceOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_ddof, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":1984
 * 
 *     def __init__(self, *, ddof=0, skip_nulls=True, min_count=0):
 *         self._set_options(ddof, skip_nulls, min_count)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_ddof, __pyx_v_skip_nulls, __pyx_v_min_count};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1984, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":1983
 *     """
 * 
 *     def __init__(self, *, ddof=0, skip_nulls=True, min_count=0):             # <<<<<<<<<<<<<<
 *         self._set_options(ddof, skip_nulls, min_count)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.VarianceOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":1988
 * 
 * cdef class _SkewOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls, biased, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSkewOptions(skip_nulls, biased, min_count))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SkewOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_SkewOptions__set_options, "_SkewOptions._set_options(self, skip_nulls, biased, min_count)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_SkewOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SkewOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SkewOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SkewOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_biased = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_biased,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1988, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1988, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1988, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1988, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 1988, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 1988, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1988, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1988, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1988, __pyx_L3_error)
    }
    __pyx_v_skip_nulls = values[0];
    __pyx_v_biased = values[1];
    __pyx_v_min_count = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1988, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SkewOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_SkewOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__SkewOptions *)__pyx_v_self), __pyx_v_skip_nulls, __pyx_v_biased, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_SkewOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SkewOptions *__pyx_v_self, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_biased, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  bool __pyx_t_2;
  uint32_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":1989
 * cdef class _SkewOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls, biased, min_count):
 *         self.wrapped.reset(new CSkewOptions(skip_nulls, biased, min_count))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_skip_nulls); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1989, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_biased); if (unlikely((__pyx_t_2 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1989, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyLong_As_uint32_t(__pyx_v_min_count); if (unlikely((__pyx_t_3 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1989, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::SkewOptions(__pyx_t_1, __pyx_t_2, __pyx_t_3));

  /* "pyarrow/_compute.pyx":1988
 * 
 * cdef class _SkewOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls, biased, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSkewOptions(skip_nulls, biased, min_count))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SkewOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SkewOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_SkewOptions_2__reduce_cython__, "_SkewOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_SkewOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SkewOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SkewOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SkewOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_SkewOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__SkewOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_SkewOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SkewOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SkewOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SkewOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_SkewOptions_4__setstate_cython__, "_SkewOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_SkewOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SkewOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SkewOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SkewOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SkewOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_SkewOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__SkewOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_SkewOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SkewOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SkewOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2005
 *     """
 * 
 *     def __init__(self, *, skip_nulls=True, biased=True, min_count=0):             # <<<<<<<<<<<<<<
 *         self._set_options(skip_nulls, biased, min_count)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11SkewOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11SkewOptions___init__, "SkewOptions.__init__(self, *, skip_nulls=True, biased=True, min_count=0)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11SkewOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11SkewOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11SkewOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11SkewOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_biased = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_biased,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2005, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2005, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2005, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 2005, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2005, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
    }
    __pyx_v_self = values[0];
    __pyx_v_skip_nulls = values[1];
    __pyx_v_biased = values[2];
    __pyx_v_min_count = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2005, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.SkewOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11SkewOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_skip_nulls, __pyx_v_biased, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11SkewOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_biased, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2006
 * 
 *     def __init__(self, *, skip_nulls=True, biased=True, min_count=0):
 *         self._set_options(skip_nulls, biased, min_count)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_skip_nulls, __pyx_v_biased, __pyx_v_min_count};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2005
 *     """
 * 
 *     def __init__(self, *, skip_nulls=True, biased=True, min_count=0):             # <<<<<<<<<<<<<<
 *         self._set_options(skip_nulls, biased, min_count)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.SkewOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2010
 * 
 * cdef class _SplitOptions(FunctionOptions):
 *     def _set_options(self, max_splits, reverse):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSplitOptions(max_splits, reverse))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SplitOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_SplitOptions__set_options, "_SplitOptions._set_options(self, max_splits, reverse)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_SplitOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SplitOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SplitOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SplitOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_max_splits = 0;
  PyObject *__pyx_v_reverse = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_max_splits,&__pyx_mstate_global->__pyx_n_u_reverse,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2010, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2010, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2010, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2010, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 2010, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2010, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2010, __pyx_L3_error)
    }
    __pyx_v_max_splits = values[0];
    __pyx_v_reverse = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2010, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SplitOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_SplitOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__SplitOptions *)__pyx_v_self), __pyx_v_max_splits, __pyx_v_reverse);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_SplitOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SplitOptions *__pyx_v_self, PyObject *__pyx_v_max_splits, PyObject *__pyx_v_reverse) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
  bool __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2011
 * cdef class _SplitOptions(FunctionOptions):
 *     def _set_options(self, max_splits, reverse):
 *         self.wrapped.reset(new CSplitOptions(max_splits, reverse))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int64_t(__pyx_v_max_splits); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2011, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_reverse); if (unlikely((__pyx_t_2 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2011, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::SplitOptions(__pyx_t_1, __pyx_t_2));

  /* "pyarrow/_compute.pyx":2010
 * 
 * cdef class _SplitOptions(FunctionOptions):
 *     def _set_options(self, max_splits, reverse):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSplitOptions(max_splits, reverse))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SplitOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SplitOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_SplitOptions_2__reduce_cython__, "_SplitOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_SplitOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SplitOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SplitOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SplitOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_SplitOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__SplitOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_SplitOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SplitOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SplitOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SplitOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13_SplitOptions_4__setstate_cython__, "_SplitOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13_SplitOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SplitOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SplitOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13_SplitOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SplitOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13_SplitOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__SplitOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13_SplitOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SplitOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SplitOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2027
 *     """
 * 
 *     def __init__(self, *, max_splits=None, reverse=False):             # <<<<<<<<<<<<<<
 *         if max_splits is None:
 *             max_splits = -1
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12SplitOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12SplitOptions___init__, "SplitOptions.__init__(self, *, max_splits=None, reverse=False)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12SplitOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12SplitOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12SplitOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12SplitOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_max_splits = 0;
  PyObject *__pyx_v_reverse = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_max_splits,&__pyx_mstate_global->__pyx_n_u_reverse,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2027, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2027, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2027, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 2027, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2027, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_self = values[0];
    __pyx_v_max_splits = values[1];
    __pyx_v_reverse = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2027, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.SplitOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12SplitOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_max_splits, __pyx_v_reverse);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12SplitOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_max_splits, PyObject *__pyx_v_reverse) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v_max_splits);

  /* "pyarrow/_compute.pyx":2028
 * 
 *     def __init__(self, *, max_splits=None, reverse=False):
 *         if max_splits is None:             # <<<<<<<<<<<<<<
 *             max_splits = -1
 *         self._set_options(max_splits, reverse)
*/
  __pyx_t_1 = (__pyx_v_max_splits == Py_None);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2029
 *     def __init__(self, *, max_splits=None, reverse=False):
 *         if max_splits is None:
 *             max_splits = -1             # <<<<<<<<<<<<<<
 *         self._set_options(max_splits, reverse)
 * 
*/
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_neg_1);
    __Pyx_DECREF_SET(__pyx_v_max_splits, __pyx_mstate_global->__pyx_int_neg_1);

    /* "pyarrow/_compute.pyx":2028
 * 
 *     def __init__(self, *, max_splits=None, reverse=False):
 *         if max_splits is None:             # <<<<<<<<<<<<<<
 *             max_splits = -1
 *         self._set_options(max_splits, reverse)
*/
  }

  /* "pyarrow/_compute.pyx":2030
 *         if max_splits is None:
 *             max_splits = -1
 *         self._set_options(max_splits, reverse)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_max_splits, __pyx_v_reverse};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2030, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2027
 *     """
 * 
 *     def __init__(self, *, max_splits=None, reverse=False):             # <<<<<<<<<<<<<<
 *         if max_splits is None:
 *             max_splits = -1
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.SplitOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_max_splits);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2034
 * 
 * cdef class _SplitPatternOptions(FunctionOptions):
 *     def _set_options(self, pattern, max_splits, reverse):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CSplitPatternOptions(tobytes(pattern), max_splits, reverse)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_SplitPatternOptions__set_options, "_SplitPatternOptions._set_options(self, pattern, max_splits, reverse)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_SplitPatternOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_SplitPatternOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_pattern = 0;
  PyObject *__pyx_v_max_splits = 0;
  PyObject *__pyx_v_reverse = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pattern,&__pyx_mstate_global->__pyx_n_u_max_splits,&__pyx_mstate_global->__pyx_n_u_reverse,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2034, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2034, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2034, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2034, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2034, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 2034, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2034, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2034, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2034, __pyx_L3_error)
    }
    __pyx_v_pattern = values[0];
    __pyx_v_max_splits = values[1];
    __pyx_v_reverse = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 2034, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SplitPatternOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_SplitPatternOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions *)__pyx_v_self), __pyx_v_pattern, __pyx_v_max_splits, __pyx_v_reverse);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_SplitPatternOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_max_splits, PyObject *__pyx_v_reverse) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  std::string __pyx_t_5;
  int64_t __pyx_t_6;
  bool __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2036
 *     def _set_options(self, pattern, max_splits, reverse):
 *         self.wrapped.reset(
 *             new CSplitPatternOptions(tobytes(pattern), max_splits, reverse)             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2036, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_pattern};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2036, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2036, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __Pyx_PyLong_As_int64_t(__pyx_v_max_splits); if (unlikely((__pyx_t_6 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2036, __pyx_L1_error)
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_reverse); if (unlikely((__pyx_t_7 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2036, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2035
 * cdef class _SplitPatternOptions(FunctionOptions):
 *     def _set_options(self, pattern, max_splits, reverse):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CSplitPatternOptions(tobytes(pattern), max_splits, reverse)
 *         )
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::SplitPatternOptions(__pyx_t_5, __pyx_t_6, __pyx_t_7));

  /* "pyarrow/_compute.pyx":2034
 * 
 * cdef class _SplitPatternOptions(FunctionOptions):
 *     def _set_options(self, pattern, max_splits, reverse):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CSplitPatternOptions(tobytes(pattern), max_splits, reverse)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._SplitPatternOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_SplitPatternOptions_2__reduce_cython__, "_SplitPatternOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_SplitPatternOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_SplitPatternOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_SplitPatternOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_SplitPatternOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SplitPatternOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_SplitPatternOptions_4__setstate_cython__, "_SplitPatternOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_SplitPatternOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_SplitPatternOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SplitPatternOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_SplitPatternOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_SplitPatternOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SplitPatternOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2055
 *     """
 * 
 *     def __init__(self, pattern, *, max_splits=None, reverse=False):             # <<<<<<<<<<<<<<
 *         if max_splits is None:
 *             max_splits = -1
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19SplitPatternOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19SplitPatternOptions___init__, "SplitPatternOptions.__init__(self, pattern, *, max_splits=None, reverse=False)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19SplitPatternOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19SplitPatternOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19SplitPatternOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19SplitPatternOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_pattern = 0;
  PyObject *__pyx_v_max_splits = 0;
  PyObject *__pyx_v_reverse = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_pattern,&__pyx_mstate_global->__pyx_n_u_max_splits,&__pyx_mstate_global->__pyx_n_u_reverse,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2055, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2055, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2055, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2055, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 2055, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2055, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2055, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_self = values[0];
    __pyx_v_pattern = values[1];
    __pyx_v_max_splits = values[2];
    __pyx_v_reverse = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2055, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.SplitPatternOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19SplitPatternOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_pattern, __pyx_v_max_splits, __pyx_v_reverse);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19SplitPatternOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pattern, PyObject *__pyx_v_max_splits, PyObject *__pyx_v_reverse) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v_max_splits);

  /* "pyarrow/_compute.pyx":2056
 * 
 *     def __init__(self, pattern, *, max_splits=None, reverse=False):
 *         if max_splits is None:             # <<<<<<<<<<<<<<
 *             max_splits = -1
 *         self._set_options(pattern, max_splits, reverse)
*/
  __pyx_t_1 = (__pyx_v_max_splits == Py_None);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2057
 *     def __init__(self, pattern, *, max_splits=None, reverse=False):
 *         if max_splits is None:
 *             max_splits = -1             # <<<<<<<<<<<<<<
 *         self._set_options(pattern, max_splits, reverse)
 * 
*/
    __Pyx_INCREF(__pyx_mstate_global->__pyx_int_neg_1);
    __Pyx_DECREF_SET(__pyx_v_max_splits, __pyx_mstate_global->__pyx_int_neg_1);

    /* "pyarrow/_compute.pyx":2056
 * 
 *     def __init__(self, pattern, *, max_splits=None, reverse=False):
 *         if max_splits is None:             # <<<<<<<<<<<<<<
 *             max_splits = -1
 *         self._set_options(pattern, max_splits, reverse)
*/
  }

  /* "pyarrow/_compute.pyx":2058
 *         if max_splits is None:
 *             max_splits = -1
 *         self._set_options(pattern, max_splits, reverse)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_v_pattern, __pyx_v_max_splits, __pyx_v_reverse};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_4, (4-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2058, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2055
 *     """
 * 
 *     def __init__(self, pattern, *, max_splits=None, reverse=False):             # <<<<<<<<<<<<<<
 *         if max_splits is None:
 *             max_splits = -1
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.SplitPatternOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_max_splits);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2061
 * 
 * 
 * cdef CSortOrder unwrap_sort_order(order) except *:             # <<<<<<<<<<<<<<
 *     if order == "ascending":
 *         return CSortOrder_Ascending
*/

static  arrow::compute::SortOrder __pyx_f_7pyarrow_8_compute_unwrap_sort_order(PyObject *__pyx_v_order) {
   arrow::compute::SortOrder __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("unwrap_sort_order", 0);

  /* "pyarrow/_compute.pyx":2062
 * 
 * cdef CSortOrder unwrap_sort_order(order) except *:
 *     if order == "ascending":             # <<<<<<<<<<<<<<
 *         return CSortOrder_Ascending
 *     elif order == "descending":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_order, __pyx_mstate_global->__pyx_n_u_ascending, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 2062, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2063
 * cdef CSortOrder unwrap_sort_order(order) except *:
 *     if order == "ascending":
 *         return CSortOrder_Ascending             # <<<<<<<<<<<<<<
 *     elif order == "descending":
 *         return CSortOrder_Descending
*/
    __pyx_r = arrow::compute::SortOrder::Ascending;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":2062
 * 
 * cdef CSortOrder unwrap_sort_order(order) except *:
 *     if order == "ascending":             # <<<<<<<<<<<<<<
 *         return CSortOrder_Ascending
 *     elif order == "descending":
*/
  }

  /* "pyarrow/_compute.pyx":2064
 *     if order == "ascending":
 *         return CSortOrder_Ascending
 *     elif order == "descending":             # <<<<<<<<<<<<<<
 *         return CSortOrder_Descending
 *     _raise_invalid_function_option(order, "sort order")
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_order, __pyx_mstate_global->__pyx_n_u_descending, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 2064, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2065
 *         return CSortOrder_Ascending
 *     elif order == "descending":
 *         return CSortOrder_Descending             # <<<<<<<<<<<<<<
 *     _raise_invalid_function_option(order, "sort order")
 * 
*/
    __pyx_r = arrow::compute::SortOrder::Descending;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":2064
 *     if order == "ascending":
 *         return CSortOrder_Ascending
 *     elif order == "descending":             # <<<<<<<<<<<<<<
 *         return CSortOrder_Descending
 *     _raise_invalid_function_option(order, "sort order")
*/
  }

  /* "pyarrow/_compute.pyx":2066
 *     elif order == "descending":
 *         return CSortOrder_Descending
 *     _raise_invalid_function_option(order, "sort order")             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2066, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_order, __pyx_mstate_global->__pyx_kp_u_sort_order};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2066, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2061
 * 
 * 
 * cdef CSortOrder unwrap_sort_order(order) except *:             # <<<<<<<<<<<<<<
 *     if order == "ascending":
 *         return CSortOrder_Ascending
*/

  /* function exit code */
  __pyx_r = ( arrow::compute::SortOrder) 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.unwrap_sort_order", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = ( arrow::compute::SortOrder) 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2069
 * 
 * 
 * cdef CNullPlacement unwrap_null_placement(null_placement) except *:             # <<<<<<<<<<<<<<
 *     if null_placement == "at_start":
 *         return CNullPlacement_AtStart
*/

static  arrow::compute::NullPlacement __pyx_f_7pyarrow_8_compute_unwrap_null_placement(PyObject *__pyx_v_null_placement) {
   arrow::compute::NullPlacement __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("unwrap_null_placement", 0);

  /* "pyarrow/_compute.pyx":2070
 * 
 * cdef CNullPlacement unwrap_null_placement(null_placement) except *:
 *     if null_placement == "at_start":             # <<<<<<<<<<<<<<
 *         return CNullPlacement_AtStart
 *     elif null_placement == "at_end":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_null_placement, __pyx_mstate_global->__pyx_n_u_at_start, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 2070, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2071
 * cdef CNullPlacement unwrap_null_placement(null_placement) except *:
 *     if null_placement == "at_start":
 *         return CNullPlacement_AtStart             # <<<<<<<<<<<<<<
 *     elif null_placement == "at_end":
 *         return CNullPlacement_AtEnd
*/
    __pyx_r = arrow::compute::NullPlacement::AtStart;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":2070
 * 
 * cdef CNullPlacement unwrap_null_placement(null_placement) except *:
 *     if null_placement == "at_start":             # <<<<<<<<<<<<<<
 *         return CNullPlacement_AtStart
 *     elif null_placement == "at_end":
*/
  }

  /* "pyarrow/_compute.pyx":2072
 *     if null_placement == "at_start":
 *         return CNullPlacement_AtStart
 *     elif null_placement == "at_end":             # <<<<<<<<<<<<<<
 *         return CNullPlacement_AtEnd
 *     _raise_invalid_function_option(null_placement, "null placement")
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_null_placement, __pyx_mstate_global->__pyx_n_u_at_end, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 2072, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2073
 *         return CNullPlacement_AtStart
 *     elif null_placement == "at_end":
 *         return CNullPlacement_AtEnd             # <<<<<<<<<<<<<<
 *     _raise_invalid_function_option(null_placement, "null placement")
 * 
*/
    __pyx_r = arrow::compute::NullPlacement::AtEnd;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":2072
 *     if null_placement == "at_start":
 *         return CNullPlacement_AtStart
 *     elif null_placement == "at_end":             # <<<<<<<<<<<<<<
 *         return CNullPlacement_AtEnd
 *     _raise_invalid_function_option(null_placement, "null placement")
*/
  }

  /* "pyarrow/_compute.pyx":2074
 *     elif null_placement == "at_end":
 *         return CNullPlacement_AtEnd
 *     _raise_invalid_function_option(null_placement, "null placement")             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_null_placement, __pyx_mstate_global->__pyx_kp_u_null_placement};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2074, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2069
 * 
 * 
 * cdef CNullPlacement unwrap_null_placement(null_placement) except *:             # <<<<<<<<<<<<<<
 *     if null_placement == "at_start":
 *         return CNullPlacement_AtStart
*/

  /* function exit code */
  __pyx_r = ( arrow::compute::NullPlacement) 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.unwrap_null_placement", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = ( arrow::compute::NullPlacement) 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2078
 * 
 * cdef class _PartitionNthOptions(FunctionOptions):
 *     def _set_options(self, pivot, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CPartitionNthOptions(
 *             pivot, unwrap_null_placement(null_placement)))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_PartitionNthOptions__set_options, "_PartitionNthOptions._set_options(self, pivot, null_placement)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_PartitionNthOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_PartitionNthOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_pivot = 0;
  PyObject *__pyx_v_null_placement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pivot,&__pyx_mstate_global->__pyx_n_u_null_placement_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2078, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2078, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2078, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2078, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 2078, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2078, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2078, __pyx_L3_error)
    }
    __pyx_v_pivot = values[0];
    __pyx_v_null_placement = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2078, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._PartitionNthOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_PartitionNthOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions *)__pyx_v_self), __pyx_v_pivot, __pyx_v_null_placement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_PartitionNthOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions *__pyx_v_self, PyObject *__pyx_v_pivot, PyObject *__pyx_v_null_placement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
   arrow::compute::NullPlacement __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2080
 *     def _set_options(self, pivot, null_placement):
 *         self.wrapped.reset(new CPartitionNthOptions(
 *             pivot, unwrap_null_placement(null_placement)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int64_t(__pyx_v_pivot); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2080, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_7pyarrow_8_compute_unwrap_null_placement(__pyx_v_null_placement); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2080, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2079
 * cdef class _PartitionNthOptions(FunctionOptions):
 *     def _set_options(self, pivot, null_placement):
 *         self.wrapped.reset(new CPartitionNthOptions(             # <<<<<<<<<<<<<<
 *             pivot, unwrap_null_placement(null_placement)))
 * 
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::PartitionNthOptions(__pyx_t_1, __pyx_t_2));

  /* "pyarrow/_compute.pyx":2078
 * 
 * cdef class _PartitionNthOptions(FunctionOptions):
 *     def _set_options(self, pivot, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CPartitionNthOptions(
 *             pivot, unwrap_null_placement(null_placement)))
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._PartitionNthOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_PartitionNthOptions_2__reduce_cython__, "_PartitionNthOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_PartitionNthOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_PartitionNthOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_PartitionNthOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_PartitionNthOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._PartitionNthOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_PartitionNthOptions_4__setstate_cython__, "_PartitionNthOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_PartitionNthOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_PartitionNthOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._PartitionNthOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_PartitionNthOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_PartitionNthOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._PartitionNthOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2096
 *     """
 * 
 *     def __init__(self, pivot, *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(pivot, null_placement)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19PartitionNthOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19PartitionNthOptions___init__, "PartitionNthOptions.__init__(self, pivot, *, null_placement='at_end')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19PartitionNthOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19PartitionNthOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19PartitionNthOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19PartitionNthOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_pivot = 0;
  PyObject *__pyx_v_null_placement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_pivot,&__pyx_mstate_global->__pyx_n_u_null_placement_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2096, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2096, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2096, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2096, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 2096, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2096, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2096, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)));
    }
    __pyx_v_self = values[0];
    __pyx_v_pivot = values[1];
    __pyx_v_null_placement = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2096, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.PartitionNthOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19PartitionNthOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_pivot, __pyx_v_null_placement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19PartitionNthOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_pivot, PyObject *__pyx_v_null_placement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2097
 * 
 *     def __init__(self, pivot, *, null_placement="at_end"):
 *         self._set_options(pivot, null_placement)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_pivot, __pyx_v_null_placement};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2097, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2096
 *     """
 * 
 *     def __init__(self, pivot, *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(pivot, null_placement)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.PartitionNthOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2101
 * 
 * cdef class _WinsorizeOptions(FunctionOptions):
 *     def _set_options(self, lower_limit, upper_limit):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CWinsorizeOptions(lower_limit, upper_limit))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_WinsorizeOptions__set_options, "_WinsorizeOptions._set_options(self, lower_limit, upper_limit)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_WinsorizeOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_WinsorizeOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_lower_limit = 0;
  PyObject *__pyx_v_upper_limit = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_lower_limit,&__pyx_mstate_global->__pyx_n_u_upper_limit,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2101, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2101, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2101, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2101, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 2101, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2101, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2101, __pyx_L3_error)
    }
    __pyx_v_lower_limit = values[0];
    __pyx_v_upper_limit = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2101, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._WinsorizeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_WinsorizeOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions *)__pyx_v_self), __pyx_v_lower_limit, __pyx_v_upper_limit);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_WinsorizeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions *__pyx_v_self, PyObject *__pyx_v_lower_limit, PyObject *__pyx_v_upper_limit) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2102
 * cdef class _WinsorizeOptions(FunctionOptions):
 *     def _set_options(self, lower_limit, upper_limit):
 *         self.wrapped.reset(new CWinsorizeOptions(lower_limit, upper_limit))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyFloat_AsDouble(__pyx_v_lower_limit); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2102, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyFloat_AsDouble(__pyx_v_upper_limit); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2102, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::WinsorizeOptions(__pyx_t_1, __pyx_t_2));

  /* "pyarrow/_compute.pyx":2101
 * 
 * cdef class _WinsorizeOptions(FunctionOptions):
 *     def _set_options(self, lower_limit, upper_limit):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CWinsorizeOptions(lower_limit, upper_limit))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._WinsorizeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_WinsorizeOptions_2__reduce_cython__, "_WinsorizeOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_WinsorizeOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_WinsorizeOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_WinsorizeOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_WinsorizeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._WinsorizeOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_WinsorizeOptions_4__setstate_cython__, "_WinsorizeOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_WinsorizeOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_WinsorizeOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._WinsorizeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_WinsorizeOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_WinsorizeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._WinsorizeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2117
 *     """
 * 
 *     def __init__(self, lower_limit, upper_limit):             # <<<<<<<<<<<<<<
 *         self._set_options(lower_limit, upper_limit)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16WinsorizeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16WinsorizeOptions___init__, "WinsorizeOptions.__init__(self, lower_limit, upper_limit)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16WinsorizeOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16WinsorizeOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16WinsorizeOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16WinsorizeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_lower_limit = 0;
  PyObject *__pyx_v_upper_limit = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_lower_limit,&__pyx_mstate_global->__pyx_n_u_upper_limit,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2117, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2117, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2117, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2117, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2117, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(0, 2117, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2117, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2117, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2117, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_lower_limit = values[1];
    __pyx_v_upper_limit = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 2117, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.WinsorizeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16WinsorizeOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_lower_limit, __pyx_v_upper_limit);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16WinsorizeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_lower_limit, PyObject *__pyx_v_upper_limit) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2118
 * 
 *     def __init__(self, lower_limit, upper_limit):
 *         self._set_options(lower_limit, upper_limit)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_lower_limit, __pyx_v_upper_limit};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2117
 *     """
 * 
 *     def __init__(self, lower_limit, upper_limit):             # <<<<<<<<<<<<<<
 *         self._set_options(lower_limit, upper_limit)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.WinsorizeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2122
 * 
 * cdef class _CumulativeOptions(FunctionOptions):
 *     def _set_options(self, start, skip_nulls):             # <<<<<<<<<<<<<<
 *         if start is None:
 *             self.wrapped.reset(new CCumulativeOptions(skip_nulls))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18_CumulativeOptions__set_options, "_CumulativeOptions._set_options(self, start, skip_nulls)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18_CumulativeOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_CumulativeOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_start = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_start,&__pyx_mstate_global->__pyx_n_u_skip_nulls,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2122, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2122, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2122, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2122, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 2122, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2122, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2122, __pyx_L3_error)
    }
    __pyx_v_start = values[0];
    __pyx_v_skip_nulls = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2122, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._CumulativeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18_CumulativeOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions *)__pyx_v_self), __pyx_v_start, __pyx_v_skip_nulls);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18_CumulativeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_skip_nulls) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  bool __pyx_t_2;
  std::shared_ptr< arrow::Scalar>  __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  size_t __pyx_t_11;
  int __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);
  __Pyx_INCREF(__pyx_v_start);

  /* "pyarrow/_compute.pyx":2123
 * cdef class _CumulativeOptions(FunctionOptions):
 *     def _set_options(self, start, skip_nulls):
 *         if start is None:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(new CCumulativeOptions(skip_nulls))
 *         elif isinstance(start, Scalar):
*/
  __pyx_t_1 = (__pyx_v_start == Py_None);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2124
 *     def _set_options(self, start, skip_nulls):
 *         if start is None:
 *             self.wrapped.reset(new CCumulativeOptions(skip_nulls))             # <<<<<<<<<<<<<<
 *         elif isinstance(start, Scalar):
 *             self.wrapped.reset(new CCumulativeOptions(
*/
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_skip_nulls); if (unlikely((__pyx_t_2 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2124, __pyx_L1_error)
    __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::CumulativeOptions(__pyx_t_2));

    /* "pyarrow/_compute.pyx":2123
 * cdef class _CumulativeOptions(FunctionOptions):
 *     def _set_options(self, start, skip_nulls):
 *         if start is None:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(new CCumulativeOptions(skip_nulls))
 *         elif isinstance(start, Scalar):
*/
    goto __pyx_L3;
  }

  /* "pyarrow/_compute.pyx":2125
 *         if start is None:
 *             self.wrapped.reset(new CCumulativeOptions(skip_nulls))
 *         elif isinstance(start, Scalar):             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(new CCumulativeOptions(
 *                 pyarrow_unwrap_scalar(start), skip_nulls))
*/
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_start, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Scalar); 
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2127
 *         elif isinstance(start, Scalar):
 *             self.wrapped.reset(new CCumulativeOptions(
 *                 pyarrow_unwrap_scalar(start), skip_nulls))             # <<<<<<<<<<<<<<
 *         else:
 *             try:
*/
    __pyx_t_3 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_scalar(__pyx_v_start); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2127, __pyx_L1_error)
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_skip_nulls); if (unlikely((__pyx_t_2 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2127, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":2126
 *             self.wrapped.reset(new CCumulativeOptions(skip_nulls))
 *         elif isinstance(start, Scalar):
 *             self.wrapped.reset(new CCumulativeOptions(             # <<<<<<<<<<<<<<
 *                 pyarrow_unwrap_scalar(start), skip_nulls))
 *         else:
*/
    __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::CumulativeOptions(__pyx_t_3, __pyx_t_2));

    /* "pyarrow/_compute.pyx":2125
 *         if start is None:
 *             self.wrapped.reset(new CCumulativeOptions(skip_nulls))
 *         elif isinstance(start, Scalar):             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(new CCumulativeOptions(
 *                 pyarrow_unwrap_scalar(start), skip_nulls))
*/
    goto __pyx_L3;
  }

  /* "pyarrow/_compute.pyx":2129
 *                 pyarrow_unwrap_scalar(start), skip_nulls))
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 start = lib.scalar(start)
 *                 self.wrapped.reset(new CCumulativeOptions(
*/
  /*else*/ {
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      /*try:*/ {

        /* "pyarrow/_compute.pyx":2130
 *         else:
 *             try:
 *                 start = lib.scalar(start)             # <<<<<<<<<<<<<<
 *                 self.wrapped.reset(new CCumulativeOptions(
 *                     pyarrow_unwrap_scalar(start), skip_nulls))
*/
        __pyx_t_8 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_lib); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2130, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_scalar); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2130, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_11 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10);
          assert(__pyx_t_8);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
          __pyx_t_11 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_start};
          __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2130, __pyx_L4_error)
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_DECREF_SET(__pyx_v_start, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "pyarrow/_compute.pyx":2132
 *                 start = lib.scalar(start)
 *                 self.wrapped.reset(new CCumulativeOptions(
 *                     pyarrow_unwrap_scalar(start), skip_nulls))             # <<<<<<<<<<<<<<
 *             except Exception:
 *                 _raise_invalid_function_option(
*/
        __pyx_t_3 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_scalar(__pyx_v_start); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2132, __pyx_L4_error)
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_skip_nulls); if (unlikely((__pyx_t_2 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2132, __pyx_L4_error)

        /* "pyarrow/_compute.pyx":2131
 *             try:
 *                 start = lib.scalar(start)
 *                 self.wrapped.reset(new CCumulativeOptions(             # <<<<<<<<<<<<<<
 *                     pyarrow_unwrap_scalar(start), skip_nulls))
 *             except Exception:
*/
        __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::CumulativeOptions(__pyx_t_3, __pyx_t_2));

        /* "pyarrow/_compute.pyx":2129
 *                 pyarrow_unwrap_scalar(start), skip_nulls))
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 start = lib.scalar(start)
 *                 self.wrapped.reset(new CCumulativeOptions(
*/
      }
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "pyarrow/_compute.pyx":2133
 *                 self.wrapped.reset(new CCumulativeOptions(
 *                     pyarrow_unwrap_scalar(start), skip_nulls))
 *             except Exception:             # <<<<<<<<<<<<<<
 *                 _raise_invalid_function_option(
 *                     start, "`start` type for CumulativeOptions", TypeError)
*/
      __pyx_t_12 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception))));
      if (__pyx_t_12) {
        __Pyx_AddTraceback("pyarrow._compute._CumulativeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_10, &__pyx_t_8) < 0) __PYX_ERR(0, 2133, __pyx_L6_except_error)
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_10);
        __Pyx_XGOTREF(__pyx_t_8);

        /* "pyarrow/_compute.pyx":2134
 *                     pyarrow_unwrap_scalar(start), skip_nulls))
 *             except Exception:
 *                 _raise_invalid_function_option(             # <<<<<<<<<<<<<<
 *                     start, "`start` type for CumulativeOptions", TypeError)
 * 
*/
        __pyx_t_13 = NULL;
        __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2134, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_14);

        /* "pyarrow/_compute.pyx":2135
 *             except Exception:
 *                 _raise_invalid_function_option(
 *                     start, "`start` type for CumulativeOptions", TypeError)             # <<<<<<<<<<<<<<
 * 
 * 
*/
        __pyx_t_11 = 1;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_14))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14);
          assert(__pyx_t_13);
          PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_14);
          __Pyx_INCREF(__pyx_t_13);
          __Pyx_INCREF(__pyx__function);
          __Pyx_DECREF_SET(__pyx_t_14, __pyx__function);
          __pyx_t_11 = 0;
        }
        #endif
        {
          PyObject *__pyx_callargs[4] = {__pyx_t_13, __pyx_v_start, __pyx_mstate_global->__pyx_kp_u_start_type_for_CumulativeOption, ((PyObject *)(((PyTypeObject*)PyExc_TypeError)))};
          __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_14, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2134, __pyx_L6_except_error)
          __Pyx_GOTREF(__pyx_t_9);
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L5_exception_handled;
      }
      goto __pyx_L6_except_error;

      /* "pyarrow/_compute.pyx":2129
 *                 pyarrow_unwrap_scalar(start), skip_nulls))
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 start = lib.scalar(start)
 *                 self.wrapped.reset(new CCumulativeOptions(
*/
      __pyx_L6_except_error:;
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
      goto __pyx_L1_error;
      __pyx_L5_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
      __pyx_L9_try_end:;
    }
  }
  __pyx_L3:;

  /* "pyarrow/_compute.pyx":2122
 * 
 * cdef class _CumulativeOptions(FunctionOptions):
 *     def _set_options(self, start, skip_nulls):             # <<<<<<<<<<<<<<
 *         if start is None:
 *             self.wrapped.reset(new CCumulativeOptions(skip_nulls))
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pyarrow._compute._CumulativeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_start);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18_CumulativeOptions_2__reduce_cython__, "_CumulativeOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18_CumulativeOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_CumulativeOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18_CumulativeOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18_CumulativeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._CumulativeOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18_CumulativeOptions_4__setstate_cython__, "_CumulativeOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18_CumulativeOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_CumulativeOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._CumulativeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18_CumulativeOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18_CumulativeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._CumulativeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2158
 *     """
 * 
 *     def __init__(self, start=None, *, skip_nulls=False):             # <<<<<<<<<<<<<<
 *         self._set_options(start, skip_nulls)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17CumulativeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17CumulativeOptions___init__, "CumulativeOptions.__init__(self, start=None, *, skip_nulls=False)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17CumulativeOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17CumulativeOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17CumulativeOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17CumulativeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_start = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_start,&__pyx_mstate_global->__pyx_n_u_skip_nulls,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2158, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2158, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2158, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2158, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 2158, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2158, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2158, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_self = values[0];
    __pyx_v_start = values[1];
    __pyx_v_skip_nulls = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2158, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.CumulativeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17CumulativeOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_start, __pyx_v_skip_nulls);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17CumulativeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_skip_nulls) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2159
 * 
 *     def __init__(self, start=None, *, skip_nulls=False):
 *         self._set_options(start, skip_nulls)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_start, __pyx_v_skip_nulls};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2158
 *     """
 * 
 *     def __init__(self, start=None, *, skip_nulls=False):             # <<<<<<<<<<<<<<
 *         self._set_options(start, skip_nulls)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.CumulativeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2174
 *     """
 * 
 *     def __init__(self, start=None, *, skip_nulls=False):             # <<<<<<<<<<<<<<
 *         warnings.warn(
 *             _DEPR_MSG.format("CumulativeSumOptions", "14.0", "CumulativeOptions"),
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20CumulativeSumOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20CumulativeSumOptions___init__, "CumulativeSumOptions.__init__(self, start=None, *, skip_nulls=False)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20CumulativeSumOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20CumulativeSumOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20CumulativeSumOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20CumulativeSumOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_start = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_start,&__pyx_mstate_global->__pyx_n_u_skip_nulls,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2174, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2174, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2174, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2174, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 2174, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2174, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2174, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_self = values[0];
    __pyx_v_start = values[1];
    __pyx_v_skip_nulls = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2174, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.CumulativeSumOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20CumulativeSumOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_start, __pyx_v_skip_nulls);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20CumulativeSumOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_start, PyObject *__pyx_v_skip_nulls) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2175
 * 
 *     def __init__(self, start=None, *, skip_nulls=False):
 *         warnings.warn(             # <<<<<<<<<<<<<<
 *             _DEPR_MSG.format("CumulativeSumOptions", "14.0", "CumulativeOptions"),
 *             FutureWarning,
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":2176
 *     def __init__(self, start=None, *, skip_nulls=False):
 *         warnings.warn(
 *             _DEPR_MSG.format("CumulativeSumOptions", "14.0", "CumulativeOptions"),             # <<<<<<<<<<<<<<
 *             FutureWarning,
 *             stacklevel=2
*/
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DEPR_MSG); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "pyarrow/_compute.pyx":2177
 *         warnings.warn(
 *             _DEPR_MSG.format("CumulativeSumOptions", "14.0", "CumulativeOptions"),
 *             FutureWarning,             # <<<<<<<<<<<<<<
 *             stacklevel=2
 *         )
*/
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[3 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, __pyx_t_3, ((PyObject *)(((PyTypeObject*)PyExc_FutureWarning)))};
    __pyx_t_5 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_stacklevel, __pyx_mstate_global->__pyx_int_2, __pyx_t_5, __pyx_callargs+3, 0) < (0)) __PYX_ERR(0, 2175, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2180
 *             stacklevel=2
 *         )
 *         self._set_options(start, skip_nulls)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_4 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_start, __pyx_v_skip_nulls};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2174
 *     """
 * 
 *     def __init__(self, start=None, *, skip_nulls=False):             # <<<<<<<<<<<<<<
 *         warnings.warn(
 *             _DEPR_MSG.format("CumulativeSumOptions", "14.0", "CumulativeOptions"),
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pyarrow._compute.CumulativeSumOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2184
 * 
 * cdef class _PairwiseOptions(FunctionOptions):
 *     def _set_options(self, period):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CPairwiseOptions(period))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_PairwiseOptions__set_options, "_PairwiseOptions._set_options(self, period)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_PairwiseOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_PairwiseOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_period = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_period,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2184, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2184, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2184, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 2184, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2184, __pyx_L3_error)
    }
    __pyx_v_period = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2184, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._PairwiseOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_PairwiseOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions *)__pyx_v_self), __pyx_v_period);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_PairwiseOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions *__pyx_v_self, PyObject *__pyx_v_period) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2185
 * cdef class _PairwiseOptions(FunctionOptions):
 *     def _set_options(self, period):
 *         self.wrapped.reset(new CPairwiseOptions(period))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int64_t(__pyx_v_period); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2185, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::PairwiseOptions(__pyx_t_1));

  /* "pyarrow/_compute.pyx":2184
 * 
 * cdef class _PairwiseOptions(FunctionOptions):
 *     def _set_options(self, period):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CPairwiseOptions(period))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._PairwiseOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_PairwiseOptions_2__reduce_cython__, "_PairwiseOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_PairwiseOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_PairwiseOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_PairwiseOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_PairwiseOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._PairwiseOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_PairwiseOptions_4__setstate_cython__, "_PairwiseOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_PairwiseOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_PairwiseOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._PairwiseOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_PairwiseOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_PairwiseOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._PairwiseOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2198
 *     """
 * 
 *     def __init__(self, period=1):             # <<<<<<<<<<<<<<
 *         self._set_options(period)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15PairwiseOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15PairwiseOptions___init__, "PairwiseOptions.__init__(self, period=1)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15PairwiseOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15PairwiseOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15PairwiseOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15PairwiseOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_period = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_period,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2198, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2198, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2198, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2198, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 2198, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2198, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2198, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_1)));
    }
    __pyx_v_self = values[0];
    __pyx_v_period = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2198, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.PairwiseOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15PairwiseOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_period);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15PairwiseOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_period) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2199
 * 
 *     def __init__(self, period=1):
 *         self._set_options(period)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_period};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2199, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2198
 *     """
 * 
 *     def __init__(self, period=1):             # <<<<<<<<<<<<<<
 *         self._set_options(period)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.PairwiseOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2203
 * 
 * cdef class _ListFlattenOptions(FunctionOptions):
 *     def _set_options(self, recursive):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CListFlattenOptions(recursive))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19_ListFlattenOptions__set_options, "_ListFlattenOptions._set_options(self, recursive)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19_ListFlattenOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_ListFlattenOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_recursive = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_recursive,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2203, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2203, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2203, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 2203, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2203, __pyx_L3_error)
    }
    __pyx_v_recursive = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2203, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ListFlattenOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19_ListFlattenOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions *)__pyx_v_self), __pyx_v_recursive);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19_ListFlattenOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions *__pyx_v_self, PyObject *__pyx_v_recursive) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2204
 * cdef class _ListFlattenOptions(FunctionOptions):
 *     def _set_options(self, recursive):
 *         self.wrapped.reset(new CListFlattenOptions(recursive))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_recursive); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2204, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::ListFlattenOptions(__pyx_t_1));

  /* "pyarrow/_compute.pyx":2203
 * 
 * cdef class _ListFlattenOptions(FunctionOptions):
 *     def _set_options(self, recursive):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CListFlattenOptions(recursive))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ListFlattenOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19_ListFlattenOptions_2__reduce_cython__, "_ListFlattenOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19_ListFlattenOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_ListFlattenOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19_ListFlattenOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19_ListFlattenOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ListFlattenOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19_ListFlattenOptions_4__setstate_cython__, "_ListFlattenOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19_ListFlattenOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_ListFlattenOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ListFlattenOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19_ListFlattenOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19_ListFlattenOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ListFlattenOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2218
 *     """
 * 
 *     def __init__(self, recursive=False):             # <<<<<<<<<<<<<<
 *         self._set_options(recursive)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18ListFlattenOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18ListFlattenOptions___init__, "ListFlattenOptions.__init__(self, recursive=False)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18ListFlattenOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18ListFlattenOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18ListFlattenOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_18ListFlattenOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_recursive = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_recursive,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2218, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2218, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2218, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2218, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 2218, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2218, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2218, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False)));
    }
    __pyx_v_self = values[0];
    __pyx_v_recursive = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2218, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ListFlattenOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18ListFlattenOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_recursive);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18ListFlattenOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_recursive) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2219
 * 
 *     def __init__(self, recursive=False):
 *         self._set_options(recursive)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_recursive};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2218
 *     """
 * 
 *     def __init__(self, recursive=False):             # <<<<<<<<<<<<<<
 *         self._set_options(recursive)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.ListFlattenOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2223
 * 
 * cdef class _ArraySortOptions(FunctionOptions):
 *     def _set_options(self, order, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CArraySortOptions(
 *             unwrap_sort_order(order), unwrap_null_placement(null_placement)))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_ArraySortOptions__set_options, "_ArraySortOptions._set_options(self, order, null_placement)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_ArraySortOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_ArraySortOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_order = 0;
  PyObject *__pyx_v_null_placement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_order,&__pyx_mstate_global->__pyx_n_u_null_placement_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2223, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2223, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2223, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2223, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 2223, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2223, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2223, __pyx_L3_error)
    }
    __pyx_v_order = values[0];
    __pyx_v_null_placement = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2223, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ArraySortOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_ArraySortOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions *)__pyx_v_self), __pyx_v_order, __pyx_v_null_placement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_ArraySortOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions *__pyx_v_self, PyObject *__pyx_v_order, PyObject *__pyx_v_null_placement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
   arrow::compute::SortOrder __pyx_t_1;
   arrow::compute::NullPlacement __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2225
 *     def _set_options(self, order, null_placement):
 *         self.wrapped.reset(new CArraySortOptions(
 *             unwrap_sort_order(order), unwrap_null_placement(null_placement)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __pyx_f_7pyarrow_8_compute_unwrap_sort_order(__pyx_v_order); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2225, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_7pyarrow_8_compute_unwrap_null_placement(__pyx_v_null_placement); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2225, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2224
 * cdef class _ArraySortOptions(FunctionOptions):
 *     def _set_options(self, order, null_placement):
 *         self.wrapped.reset(new CArraySortOptions(             # <<<<<<<<<<<<<<
 *             unwrap_sort_order(order), unwrap_null_placement(null_placement)))
 * 
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::ArraySortOptions(__pyx_t_1, __pyx_t_2));

  /* "pyarrow/_compute.pyx":2223
 * 
 * cdef class _ArraySortOptions(FunctionOptions):
 *     def _set_options(self, order, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CArraySortOptions(
 *             unwrap_sort_order(order), unwrap_null_placement(null_placement)))
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ArraySortOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_ArraySortOptions_2__reduce_cython__, "_ArraySortOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_ArraySortOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_ArraySortOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_ArraySortOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_ArraySortOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ArraySortOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17_ArraySortOptions_4__setstate_cython__, "_ArraySortOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17_ArraySortOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_ArraySortOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._ArraySortOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17_ArraySortOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17_ArraySortOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._ArraySortOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2242
 *     """
 * 
 *     def __init__(self, order="ascending", *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(order, null_placement)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16ArraySortOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16ArraySortOptions___init__, "ArraySortOptions.__init__(self, order='ascending', *, null_placement='at_end')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16ArraySortOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16ArraySortOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16ArraySortOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16ArraySortOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_order = 0;
  PyObject *__pyx_v_null_placement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_order,&__pyx_mstate_global->__pyx_n_u_null_placement_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2242, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2242, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2242, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2242, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_ascending)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 2242, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2242, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2242, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_ascending)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)));
    }
    __pyx_v_self = values[0];
    __pyx_v_order = values[1];
    __pyx_v_null_placement = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2242, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.ArraySortOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16ArraySortOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_order, __pyx_v_null_placement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16ArraySortOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_order, PyObject *__pyx_v_null_placement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2243
 * 
 *     def __init__(self, order="ascending", *, null_placement="at_end"):
 *         self._set_options(order, null_placement)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_order, __pyx_v_null_placement};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2243, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2242
 *     """
 * 
 *     def __init__(self, order="ascending", *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(order, null_placement)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.ArraySortOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2247
 * 
 * cdef class _SortOptions(FunctionOptions):
 *     def _set_options(self, sort_keys, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSortOptions(
 *             unwrap_sort_keys(sort_keys, allow_str=False),
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SortOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_SortOptions__set_options, "_SortOptions._set_options(self, sort_keys, null_placement)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_SortOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SortOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SortOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SortOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_sort_keys = 0;
  PyObject *__pyx_v_null_placement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_sort_keys,&__pyx_mstate_global->__pyx_n_u_null_placement_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2247, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2247, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2247, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2247, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 2247, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2247, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2247, __pyx_L3_error)
    }
    __pyx_v_sort_keys = values[0];
    __pyx_v_null_placement = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2247, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SortOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_SortOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__SortOptions *)__pyx_v_self), __pyx_v_sort_keys, __pyx_v_null_placement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_SortOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SortOptions *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::vector< arrow::compute::SortKey>  __pyx_t_1;
  struct __pyx_opt_args_7pyarrow_8_compute_unwrap_sort_keys __pyx_t_2;
   arrow::compute::NullPlacement __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2249
 *     def _set_options(self, sort_keys, null_placement):
 *         self.wrapped.reset(new CSortOptions(
 *             unwrap_sort_keys(sort_keys, allow_str=False),             # <<<<<<<<<<<<<<
 *             unwrap_null_placement(null_placement)))
 * 
*/
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.allow_str = Py_False;
  __pyx_t_1 = __pyx_f_7pyarrow_8_compute_unwrap_sort_keys(__pyx_v_sort_keys, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2249, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2250
 *         self.wrapped.reset(new CSortOptions(
 *             unwrap_sort_keys(sort_keys, allow_str=False),
 *             unwrap_null_placement(null_placement)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = __pyx_f_7pyarrow_8_compute_unwrap_null_placement(__pyx_v_null_placement); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2250, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2248
 * cdef class _SortOptions(FunctionOptions):
 *     def _set_options(self, sort_keys, null_placement):
 *         self.wrapped.reset(new CSortOptions(             # <<<<<<<<<<<<<<
 *             unwrap_sort_keys(sort_keys, allow_str=False),
 *             unwrap_null_placement(null_placement)))
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::SortOptions(__pyx_t_1, __pyx_t_3));

  /* "pyarrow/_compute.pyx":2247
 * 
 * cdef class _SortOptions(FunctionOptions):
 *     def _set_options(self, sort_keys, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSortOptions(
 *             unwrap_sort_keys(sort_keys, allow_str=False),
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SortOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SortOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_SortOptions_2__reduce_cython__, "_SortOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_SortOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SortOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SortOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SortOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_SortOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__SortOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_SortOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SortOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SortOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SortOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_SortOptions_4__setstate_cython__, "_SortOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_SortOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SortOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SortOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_SortOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SortOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_SortOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__SortOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_SortOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SortOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SortOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2270
 *     """
 * 
 *     def __init__(self, sort_keys=(), *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(sort_keys, null_placement)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11SortOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11SortOptions___init__, "SortOptions.__init__(self, sort_keys=(), *, null_placement='at_end')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11SortOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11SortOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11SortOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11SortOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_sort_keys = 0;
  PyObject *__pyx_v_null_placement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_sort_keys,&__pyx_mstate_global->__pyx_n_u_null_placement_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2270, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2270, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2270, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2270, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_empty_tuple)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 2270, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2270, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2270, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_empty_tuple)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)));
    }
    __pyx_v_self = values[0];
    __pyx_v_sort_keys = values[1];
    __pyx_v_null_placement = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2270, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.SortOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11SortOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_sort_keys, __pyx_v_null_placement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11SortOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2271
 * 
 *     def __init__(self, sort_keys=(), *, null_placement="at_end"):
 *         self._set_options(sort_keys, null_placement)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_sort_keys, __pyx_v_null_placement};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2271, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2270
 *     """
 * 
 *     def __init__(self, sort_keys=(), *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(sort_keys, null_placement)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.SortOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2275
 * 
 * cdef class _SelectKOptions(FunctionOptions):
 *     def _set_options(self, k, sort_keys):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSelectKOptions(k, unwrap_sort_keys(sort_keys, allow_str=False)))
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15_SelectKOptions__set_options, "_SelectKOptions._set_options(self, k, sort_keys)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15_SelectKOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_SelectKOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_k = 0;
  PyObject *__pyx_v_sort_keys = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_k,&__pyx_mstate_global->__pyx_n_u_sort_keys,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2275, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2275, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2275, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2275, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 2275, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2275, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2275, __pyx_L3_error)
    }
    __pyx_v_k = values[0];
    __pyx_v_sort_keys = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2275, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SelectKOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15_SelectKOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__SelectKOptions *)__pyx_v_self), __pyx_v_k, __pyx_v_sort_keys);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15_SelectKOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__SelectKOptions *__pyx_v_self, PyObject *__pyx_v_k, PyObject *__pyx_v_sort_keys) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
  std::vector< arrow::compute::SortKey>  __pyx_t_2;
  struct __pyx_opt_args_7pyarrow_8_compute_unwrap_sort_keys __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2276
 * cdef class _SelectKOptions(FunctionOptions):
 *     def _set_options(self, k, sort_keys):
 *         self.wrapped.reset(new CSelectKOptions(k, unwrap_sort_keys(sort_keys, allow_str=False)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_1 = __Pyx_PyLong_As_int64_t(__pyx_v_k); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2276, __pyx_L1_error)
  __pyx_t_3.__pyx_n = 1;
  __pyx_t_3.allow_str = Py_False;
  __pyx_t_2 = __pyx_f_7pyarrow_8_compute_unwrap_sort_keys(__pyx_v_sort_keys, &__pyx_t_3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2276, __pyx_L1_error)
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::SelectKOptions(__pyx_t_1, __pyx_t_2));

  /* "pyarrow/_compute.pyx":2275
 * 
 * cdef class _SelectKOptions(FunctionOptions):
 *     def _set_options(self, k, sort_keys):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSelectKOptions(k, unwrap_sort_keys(sort_keys, allow_str=False)))
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SelectKOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15_SelectKOptions_2__reduce_cython__, "_SelectKOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15_SelectKOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_SelectKOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15_SelectKOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__SelectKOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15_SelectKOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SelectKOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SelectKOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15_SelectKOptions_4__setstate_cython__, "_SelectKOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15_SelectKOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_SelectKOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._SelectKOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15_SelectKOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__SelectKOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15_SelectKOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__SelectKOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._SelectKOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2296
 *     """
 * 
 *     def __init__(self, k, sort_keys):             # <<<<<<<<<<<<<<
 *         self._set_options(k, sort_keys)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_14SelectKOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_14SelectKOptions___init__, "SelectKOptions.__init__(self, k, sort_keys)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_14SelectKOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14SelectKOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14SelectKOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_14SelectKOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_k = 0;
  PyObject *__pyx_v_sort_keys = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_k,&__pyx_mstate_global->__pyx_n_u_sort_keys,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2296, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2296, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2296, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2296, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2296, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(0, 2296, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2296, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2296, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2296, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_k = values[1];
    __pyx_v_sort_keys = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 2296, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.SelectKOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14SelectKOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_k, __pyx_v_sort_keys);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14SelectKOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_k, PyObject *__pyx_v_sort_keys) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2297
 * 
 *     def __init__(self, k, sort_keys):
 *         self._set_options(k, sort_keys)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_k, __pyx_v_sort_keys};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2296
 *     """
 * 
 *     def __init__(self, k, sort_keys):             # <<<<<<<<<<<<<<
 *         self._set_options(k, sort_keys)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.SelectKOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2309
 *     }
 * 
 *     def _set_options(self, quantiles, interp, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_QuantileOptions__set_options, "_QuantileOptions._set_options(self, quantiles, interp, skip_nulls, min_count)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_QuantileOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_QuantileOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_quantiles = 0;
  PyObject *__pyx_v_interp = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_quantiles,&__pyx_mstate_global->__pyx_n_u_interp,&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2309, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 2309, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2309, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2309, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2309, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2309, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 4; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 4, 4, i); __PYX_ERR(0, 2309, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 4)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2309, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2309, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2309, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 2309, __pyx_L3_error)
    }
    __pyx_v_quantiles = values[0];
    __pyx_v_interp = values[1];
    __pyx_v_skip_nulls = values[2];
    __pyx_v_min_count = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 2309, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._QuantileOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_QuantileOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__QuantileOptions *)__pyx_v_self), __pyx_v_quantiles, __pyx_v_interp, __pyx_v_skip_nulls, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_QuantileOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__QuantileOptions *__pyx_v_self, PyObject *__pyx_v_quantiles, PyObject *__pyx_v_interp, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::vector<double>  __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  enum arrow::compute::QuantileOptions::Interpolation __pyx_t_7;
  bool __pyx_t_8;
  uint32_t __pyx_t_9;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  size_t __pyx_t_15;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2310
 * 
 *     def _set_options(self, quantiles, interp, skip_nulls, min_count):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CQuantileOptions(quantiles, self._interp_map[interp],
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "pyarrow/_compute.pyx":2312
 *         try:
 *             self.wrapped.reset(
 *                 new CQuantileOptions(quantiles, self._interp_map[interp],             # <<<<<<<<<<<<<<
 *                                      skip_nulls, min_count)
 *             )
*/
      __pyx_t_4 = __pyx_convert_vector_from_py_double(__pyx_v_quantiles); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2312, __pyx_L3_error)
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_interp_map); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2312, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_interp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2312, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_7 = ((enum arrow::compute::QuantileOptions::Interpolation)__Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_QuantileOptions_3a__3a_Interpolation(__pyx_t_6)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2312, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "pyarrow/_compute.pyx":2313
 *             self.wrapped.reset(
 *                 new CQuantileOptions(quantiles, self._interp_map[interp],
 *                                      skip_nulls, min_count)             # <<<<<<<<<<<<<<
 *             )
 *         except KeyError:
*/
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_skip_nulls); if (unlikely((__pyx_t_8 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2313, __pyx_L3_error)
      __pyx_t_9 = __Pyx_PyLong_As_uint32_t(__pyx_v_min_count); if (unlikely((__pyx_t_9 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2313, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":2311
 *     def _set_options(self, quantiles, interp, skip_nulls, min_count):
 *         try:
 *             self.wrapped.reset(             # <<<<<<<<<<<<<<
 *                 new CQuantileOptions(quantiles, self._interp_map[interp],
 *                                      skip_nulls, min_count)
*/
      __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::QuantileOptions(__pyx_t_4, __pyx_t_7, __pyx_t_8, __pyx_t_9));

      /* "pyarrow/_compute.pyx":2310
 * 
 *     def _set_options(self, quantiles, interp, skip_nulls, min_count):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CQuantileOptions(quantiles, self._interp_map[interp],
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "pyarrow/_compute.pyx":2315
 *                                      skip_nulls, min_count)
 *             )
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(interp, "quantile interpolation")
 * 
*/
    __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_10) {
      __Pyx_AddTraceback("pyarrow._compute._QuantileOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_11) < 0) __PYX_ERR(0, 2315, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_11);

      /* "pyarrow/_compute.pyx":2316
 *             )
 *         except KeyError:
 *             _raise_invalid_function_option(interp, "quantile interpolation")             # <<<<<<<<<<<<<<
 * 
 * 
*/
      __pyx_t_13 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2316, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_15 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_14))) {
        __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14);
        assert(__pyx_t_13);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_14);
        __Pyx_INCREF(__pyx_t_13);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_14, __pyx__function);
        __pyx_t_15 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_v_interp, __pyx_mstate_global->__pyx_kp_u_quantile_interpolation};
        __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_14, __pyx_callargs+__pyx_t_15, (3-__pyx_t_15) | (__pyx_t_15*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2316, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_12);
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "pyarrow/_compute.pyx":2310
 * 
 *     def _set_options(self, quantiles, interp, skip_nulls, min_count):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CQuantileOptions(quantiles, self._interp_map[interp],
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "pyarrow/_compute.pyx":2309
 *     }
 * 
 *     def _set_options(self, quantiles, interp, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pyarrow._compute._QuantileOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_QuantileOptions_2__reduce_cython__, "_QuantileOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_QuantileOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_QuantileOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_QuantileOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__QuantileOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_QuantileOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__QuantileOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._QuantileOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_16_QuantileOptions_4__setstate_cython__, "_QuantileOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_16_QuantileOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_QuantileOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._QuantileOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_16_QuantileOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__QuantileOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_16_QuantileOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__QuantileOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._QuantileOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2341
 *     """
 * 
 *     def __init__(self, q=0.5, *, interpolation="linear", skip_nulls=True,             # <<<<<<<<<<<<<<
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15QuantileOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15QuantileOptions___init__, "QuantileOptions.__init__(self, q=0.5, *, interpolation='linear', skip_nulls=True, min_count=0)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15QuantileOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15QuantileOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15QuantileOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15QuantileOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_q = 0;
  PyObject *__pyx_v_interpolation = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_q,&__pyx_mstate_global->__pyx_n_u_interpolation,&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2341, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2341, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2341, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2341, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_float_0_5)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_linear)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 2341, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2341, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2341, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_float_0_5)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_linear)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
    }
    __pyx_v_self = values[0];
    __pyx_v_q = values[1];
    __pyx_v_interpolation = values[2];
    __pyx_v_skip_nulls = values[3];
    __pyx_v_min_count = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2341, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.QuantileOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15QuantileOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_q, __pyx_v_interpolation, __pyx_v_skip_nulls, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15QuantileOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_q, PyObject *__pyx_v_interpolation, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v_q);

  /* "pyarrow/_compute.pyx":2343
 *     def __init__(self, q=0.5, *, interpolation="linear", skip_nulls=True,
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):             # <<<<<<<<<<<<<<
 *             q = [q]
 *         self._set_options(q, interpolation, skip_nulls, min_count)
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_SUPPORTED_INPUT_ARR_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_q, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2343, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "pyarrow/_compute.pyx":2344
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):
 *             q = [q]             # <<<<<<<<<<<<<<
 *         self._set_options(q, interpolation, skip_nulls, min_count)
 * 
*/
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_q);
    __Pyx_GIVEREF(__pyx_v_q);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_q) != (0)) __PYX_ERR(0, 2344, __pyx_L1_error);
    __Pyx_DECREF_SET(__pyx_v_q, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "pyarrow/_compute.pyx":2343
 *     def __init__(self, q=0.5, *, interpolation="linear", skip_nulls=True,
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):             # <<<<<<<<<<<<<<
 *             q = [q]
 *         self._set_options(q, interpolation, skip_nulls, min_count)
*/
  }

  /* "pyarrow/_compute.pyx":2345
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):
 *             q = [q]
 *         self._set_options(q, interpolation, skip_nulls, min_count)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_4 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_4, __pyx_v_q, __pyx_v_interpolation, __pyx_v_skip_nulls, __pyx_v_min_count};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_5, (5-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2345, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2341
 *     """
 * 
 *     def __init__(self, q=0.5, *, interpolation="linear", skip_nulls=True,             # <<<<<<<<<<<<<<
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.QuantileOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_q);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2349
 * 
 * cdef class _TDigestOptions(FunctionOptions):
 *     def _set_options(self, quantiles, delta, buffer_size, skip_nulls,             # <<<<<<<<<<<<<<
 *                      min_count):
 *         self.wrapped.reset(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15_TDigestOptions__set_options, "_TDigestOptions._set_options(self, quantiles, delta, buffer_size, skip_nulls, min_count)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15_TDigestOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_TDigestOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_quantiles = 0;
  PyObject *__pyx_v_delta = 0;
  PyObject *__pyx_v_buffer_size = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[5] = {0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_quantiles,&__pyx_mstate_global->__pyx_n_u_delta,&__pyx_mstate_global->__pyx_n_u_buffer_size,&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2349, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 2349, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 2349, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2349, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2349, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2349, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2349, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 5, 5, i); __PYX_ERR(0, 2349, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 5)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2349, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2349, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2349, __pyx_L3_error)
      values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 2349, __pyx_L3_error)
      values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 2349, __pyx_L3_error)
    }
    __pyx_v_quantiles = values[0];
    __pyx_v_delta = values[1];
    __pyx_v_buffer_size = values[2];
    __pyx_v_skip_nulls = values[3];
    __pyx_v_min_count = values[4];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 5, 5, __pyx_nargs); __PYX_ERR(0, 2349, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._TDigestOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15_TDigestOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__TDigestOptions *)__pyx_v_self), __pyx_v_quantiles, __pyx_v_delta, __pyx_v_buffer_size, __pyx_v_skip_nulls, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15_TDigestOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__TDigestOptions *__pyx_v_self, PyObject *__pyx_v_quantiles, PyObject *__pyx_v_delta, PyObject *__pyx_v_buffer_size, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::vector<double>  __pyx_t_1;
  uint32_t __pyx_t_2;
  uint32_t __pyx_t_3;
  bool __pyx_t_4;
  uint32_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2352
 *                      min_count):
 *         self.wrapped.reset(
 *             new CTDigestOptions(quantiles, delta, buffer_size, skip_nulls,             # <<<<<<<<<<<<<<
 *                                 min_count)
 *         )
*/
  __pyx_t_1 = __pyx_convert_vector_from_py_double(__pyx_v_quantiles); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2352, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyLong_As_uint32_t(__pyx_v_delta); if (unlikely((__pyx_t_2 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2352, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyLong_As_uint32_t(__pyx_v_buffer_size); if (unlikely((__pyx_t_3 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2352, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_skip_nulls); if (unlikely((__pyx_t_4 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2352, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2353
 *         self.wrapped.reset(
 *             new CTDigestOptions(quantiles, delta, buffer_size, skip_nulls,
 *                                 min_count)             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_5 = __Pyx_PyLong_As_uint32_t(__pyx_v_min_count); if (unlikely((__pyx_t_5 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2353, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2351
 *     def _set_options(self, quantiles, delta, buffer_size, skip_nulls,
 *                      min_count):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CTDigestOptions(quantiles, delta, buffer_size, skip_nulls,
 *                                 min_count)
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::TDigestOptions(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5));

  /* "pyarrow/_compute.pyx":2349
 * 
 * cdef class _TDigestOptions(FunctionOptions):
 *     def _set_options(self, quantiles, delta, buffer_size, skip_nulls,             # <<<<<<<<<<<<<<
 *                      min_count):
 *         self.wrapped.reset(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._TDigestOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15_TDigestOptions_2__reduce_cython__, "_TDigestOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15_TDigestOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_TDigestOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15_TDigestOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__TDigestOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15_TDigestOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TDigestOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._TDigestOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_15_TDigestOptions_4__setstate_cython__, "_TDigestOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_15_TDigestOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_TDigestOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._TDigestOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_15_TDigestOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__TDigestOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_15_TDigestOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__TDigestOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._TDigestOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2374
 *     """
 * 
 *     def __init__(self, q=0.5, *, delta=100, buffer_size=500, skip_nulls=True,             # <<<<<<<<<<<<<<
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_14TDigestOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_14TDigestOptions___init__, "TDigestOptions.__init__(self, q=0.5, *, delta=100, buffer_size=500, skip_nulls=True, min_count=0)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_14TDigestOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14TDigestOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14TDigestOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_14TDigestOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_q = 0;
  PyObject *__pyx_v_delta = 0;
  PyObject *__pyx_v_buffer_size = 0;
  PyObject *__pyx_v_skip_nulls = 0;
  PyObject *__pyx_v_min_count = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_q,&__pyx_mstate_global->__pyx_n_u_delta,&__pyx_mstate_global->__pyx_n_u_buffer_size,&__pyx_mstate_global->__pyx_n_u_skip_nulls,&__pyx_mstate_global->__pyx_n_u_min_count,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2374, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2374, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2374, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2374, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_float_0_5)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_100)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_500)));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 2374, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2374, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2374, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_float_0_5)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_100)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_500)));
      if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True)));
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_int_0)));
    }
    __pyx_v_self = values[0];
    __pyx_v_q = values[1];
    __pyx_v_delta = values[2];
    __pyx_v_buffer_size = values[3];
    __pyx_v_skip_nulls = values[4];
    __pyx_v_min_count = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2374, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.TDigestOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14TDigestOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_q, __pyx_v_delta, __pyx_v_buffer_size, __pyx_v_skip_nulls, __pyx_v_min_count);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14TDigestOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_q, PyObject *__pyx_v_delta, PyObject *__pyx_v_buffer_size, PyObject *__pyx_v_skip_nulls, PyObject *__pyx_v_min_count) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_INCREF(__pyx_v_q);

  /* "pyarrow/_compute.pyx":2376
 *     def __init__(self, q=0.5, *, delta=100, buffer_size=500, skip_nulls=True,
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):             # <<<<<<<<<<<<<<
 *             q = [q]
 *         self._set_options(q, delta, buffer_size, skip_nulls, min_count)
*/
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_SUPPORTED_INPUT_ARR_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_q, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {

    /* "pyarrow/_compute.pyx":2377
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):
 *             q = [q]             # <<<<<<<<<<<<<<
 *         self._set_options(q, delta, buffer_size, skip_nulls, min_count)
 * 
*/
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_q);
    __Pyx_GIVEREF(__pyx_v_q);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_q) != (0)) __PYX_ERR(0, 2377, __pyx_L1_error);
    __Pyx_DECREF_SET(__pyx_v_q, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "pyarrow/_compute.pyx":2376
 *     def __init__(self, q=0.5, *, delta=100, buffer_size=500, skip_nulls=True,
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):             # <<<<<<<<<<<<<<
 *             q = [q]
 *         self._set_options(q, delta, buffer_size, skip_nulls, min_count)
*/
  }

  /* "pyarrow/_compute.pyx":2378
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):
 *             q = [q]
 *         self._set_options(q, delta, buffer_size, skip_nulls, min_count)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_4 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[6] = {__pyx_t_4, __pyx_v_q, __pyx_v_delta, __pyx_v_buffer_size, __pyx_v_skip_nulls, __pyx_v_min_count};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_5, (6-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2374
 *     """
 * 
 *     def __init__(self, q=0.5, *, delta=100, buffer_size=500, skip_nulls=True,             # <<<<<<<<<<<<<<
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.TDigestOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_q);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2389
 *     }
 * 
 *     def _set_options(self, form):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_21_Utf8NormalizeOptions__set_options, "_Utf8NormalizeOptions._set_options(self, form)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_21_Utf8NormalizeOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_Utf8NormalizeOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_form = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_form,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2389, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2389, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2389, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 2389, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2389, __pyx_L3_error)
    }
    __pyx_v_form = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2389, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._Utf8NormalizeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21_Utf8NormalizeOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions *)__pyx_v_self), __pyx_v_form);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21_Utf8NormalizeOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions *__pyx_v_self, PyObject *__pyx_v_form) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  enum arrow::compute::Utf8NormalizeOptions::Form __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  size_t __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2390
 * 
 *     def _set_options(self, form):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CUtf8NormalizeOptions(self._form_map[form])
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "pyarrow/_compute.pyx":2392
 *         try:
 *             self.wrapped.reset(
 *                 new CUtf8NormalizeOptions(self._form_map[form])             # <<<<<<<<<<<<<<
 *             )
 *         except KeyError:
*/
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_form_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2392, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_form); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2392, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = ((enum arrow::compute::Utf8NormalizeOptions::Form)__Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_Utf8NormalizeOptions_3a__3a_Form(__pyx_t_5)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2392, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "pyarrow/_compute.pyx":2391
 *     def _set_options(self, form):
 *         try:
 *             self.wrapped.reset(             # <<<<<<<<<<<<<<
 *                 new CUtf8NormalizeOptions(self._form_map[form])
 *             )
*/
      __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::Utf8NormalizeOptions(__pyx_t_6));

      /* "pyarrow/_compute.pyx":2390
 * 
 *     def _set_options(self, form):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CUtf8NormalizeOptions(self._form_map[form])
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "pyarrow/_compute.pyx":2394
 *                 new CUtf8NormalizeOptions(self._form_map[form])
 *             )
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(form,
 *                                            "Unicode normalization form")
*/
    __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_7) {
      __Pyx_AddTraceback("pyarrow._compute._Utf8NormalizeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 2394, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_8);

      /* "pyarrow/_compute.pyx":2395
 *             )
 *         except KeyError:
 *             _raise_invalid_function_option(form,             # <<<<<<<<<<<<<<
 *                                            "Unicode normalization form")
 * 
*/
      __pyx_t_10 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2395, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_12 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
        assert(__pyx_t_10);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
        __pyx_t_12 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_10, __pyx_v_form, __pyx_mstate_global->__pyx_kp_u_Unicode_normalization_form};
        __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_12, (3-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2395, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "pyarrow/_compute.pyx":2390
 * 
 *     def _set_options(self, form):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CUtf8NormalizeOptions(self._form_map[form])
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "pyarrow/_compute.pyx":2389
 *     }
 * 
 *     def _set_options(self, form):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("pyarrow._compute._Utf8NormalizeOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_21_Utf8NormalizeOptions_2__reduce_cython__, "_Utf8NormalizeOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_21_Utf8NormalizeOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_Utf8NormalizeOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21_Utf8NormalizeOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21_Utf8NormalizeOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._Utf8NormalizeOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_21_Utf8NormalizeOptions_4__setstate_cython__, "_Utf8NormalizeOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_21_Utf8NormalizeOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_Utf8NormalizeOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._Utf8NormalizeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_21_Utf8NormalizeOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_21_Utf8NormalizeOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._Utf8NormalizeOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2410
 *     """
 * 
 *     def __init__(self, form):             # <<<<<<<<<<<<<<
 *         self._set_options(form)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20Utf8NormalizeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20Utf8NormalizeOptions___init__, "Utf8NormalizeOptions.__init__(self, form)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20Utf8NormalizeOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20Utf8NormalizeOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20Utf8NormalizeOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20Utf8NormalizeOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_form = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_form,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2410, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2410, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2410, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2410, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 2410, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2410, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2410, __pyx_L3_error)
    }
    __pyx_v_self = values[0];
    __pyx_v_form = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2410, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Utf8NormalizeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20Utf8NormalizeOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_form);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20Utf8NormalizeOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_form) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2411
 * 
 *     def __init__(self, form):
 *         self._set_options(form)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_form};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2411, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2410
 *     """
 * 
 *     def __init__(self, form):             # <<<<<<<<<<<<<<
 *         self._set_options(form)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.Utf8NormalizeOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2415
 * 
 * cdef class _RandomOptions(FunctionOptions):
 *     def _set_options(self, initializer):             # <<<<<<<<<<<<<<
 *         if initializer == 'system':
 *             self.wrapped.reset(new CRandomOptions(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_14_RandomOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_14_RandomOptions__set_options, "_RandomOptions._set_options(self, initializer)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_14_RandomOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_RandomOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_RandomOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_14_RandomOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_initializer = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_initializer,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2415, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2415, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2415, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, i); __PYX_ERR(0, 2415, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2415, __pyx_L3_error)
    }
    __pyx_v_initializer = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2415, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RandomOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14_RandomOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__RandomOptions *)__pyx_v_self), __pyx_v_initializer);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14_RandomOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RandomOptions *__pyx_v_self, PyObject *__pyx_v_initializer) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_hash_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  size_t __pyx_t_15;
  uint64_t __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);
  __Pyx_INCREF(__pyx_v_initializer);

  /* "pyarrow/_compute.pyx":2416
 * cdef class _RandomOptions(FunctionOptions):
 *     def _set_options(self, initializer):
 *         if initializer == 'system':             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(new CRandomOptions(
 *                 CRandomOptions.FromSystemRandom()))
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_initializer, __pyx_mstate_global->__pyx_n_u_system, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 2416, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2417
 *     def _set_options(self, initializer):
 *         if initializer == 'system':
 *             self.wrapped.reset(new CRandomOptions(             # <<<<<<<<<<<<<<
 *                 CRandomOptions.FromSystemRandom()))
 *             return
*/
    __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::RandomOptions(arrow::compute::RandomOptions::FromSystemRandom()));

    /* "pyarrow/_compute.pyx":2419
 *             self.wrapped.reset(new CRandomOptions(
 *                 CRandomOptions.FromSystemRandom()))
 *             return             # <<<<<<<<<<<<<<
 * 
 *         if not isinstance(initializer, int):
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":2416
 * cdef class _RandomOptions(FunctionOptions):
 *     def _set_options(self, initializer):
 *         if initializer == 'system':             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(new CRandomOptions(
 *                 CRandomOptions.FromSystemRandom()))
*/
  }

  /* "pyarrow/_compute.pyx":2421
 *             return
 * 
 *         if not isinstance(initializer, int):             # <<<<<<<<<<<<<<
 *             try:
 *                 initializer = hash(initializer)
*/
  __pyx_t_1 = PyLong_Check(__pyx_v_initializer); 
  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "pyarrow/_compute.pyx":2422
 * 
 *         if not isinstance(initializer, int):
 *             try:             # <<<<<<<<<<<<<<
 *                 initializer = hash(initializer)
 *             except TypeError:
*/
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      /*try:*/ {

        /* "pyarrow/_compute.pyx":2423
 *         if not isinstance(initializer, int):
 *             try:
 *                 initializer = hash(initializer)             # <<<<<<<<<<<<<<
 *             except TypeError:
 *                 raise TypeError(
*/
        __pyx_t_6 = PyObject_Hash(__pyx_v_initializer); if (unlikely(__pyx_t_6 == ((Py_hash_t)-1))) __PYX_ERR(0, 2423, __pyx_L5_error)
        __pyx_t_7 = __Pyx_PyLong_FromHash_t(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2423, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF_SET(__pyx_v_initializer, __pyx_t_7);
        __pyx_t_7 = 0;

        /* "pyarrow/_compute.pyx":2422
 * 
 *         if not isinstance(initializer, int):
 *             try:             # <<<<<<<<<<<<<<
 *                 initializer = hash(initializer)
 *             except TypeError:
*/
      }
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L10_try_end;
      __pyx_L5_error:;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "pyarrow/_compute.pyx":2424
 *             try:
 *                 initializer = hash(initializer)
 *             except TypeError:             # <<<<<<<<<<<<<<
 *                 raise TypeError(
 *                     f"initializer should be 'system', an integer, "
*/
      __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
      if (__pyx_t_8) {
        __Pyx_AddTraceback("pyarrow._compute._RandomOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_10) < 0) __PYX_ERR(0, 2424, __pyx_L7_except_error)
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_9);
        __Pyx_XGOTREF(__pyx_t_10);

        /* "pyarrow/_compute.pyx":2425
 *                 initializer = hash(initializer)
 *             except TypeError:
 *                 raise TypeError(             # <<<<<<<<<<<<<<
 *                     f"initializer should be 'system', an integer, "
 *                     f"or a hashable object; got {initializer!r}")
*/
        __pyx_t_12 = NULL;

        /* "pyarrow/_compute.pyx":2427
 *                 raise TypeError(
 *                     f"initializer should be 'system', an integer, "
 *                     f"or a hashable object; got {initializer!r}")             # <<<<<<<<<<<<<<
 * 
 *         if initializer < 0:
*/
        __pyx_t_13 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_initializer), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2427, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_13);

        /* "pyarrow/_compute.pyx":2426
 *             except TypeError:
 *                 raise TypeError(
 *                     f"initializer should be 'system', an integer, "             # <<<<<<<<<<<<<<
 *                     f"or a hashable object; got {initializer!r}")
 * 
*/
        __pyx_t_14 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_initializer_should_be_system_an, __pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2426, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_15 = 1;
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_14};
          __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_15, (2-__pyx_t_15) | (__pyx_t_15*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2425, __pyx_L7_except_error)
          __Pyx_GOTREF(__pyx_t_11);
        }
        __Pyx_Raise(__pyx_t_11, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __PYX_ERR(0, 2425, __pyx_L7_except_error)
      }
      goto __pyx_L7_except_error;

      /* "pyarrow/_compute.pyx":2422
 * 
 *         if not isinstance(initializer, int):
 *             try:             # <<<<<<<<<<<<<<
 *                 initializer = hash(initializer)
 *             except TypeError:
*/
      __pyx_L7_except_error:;
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
      goto __pyx_L1_error;
      __pyx_L10_try_end:;
    }

    /* "pyarrow/_compute.pyx":2421
 *             return
 * 
 *         if not isinstance(initializer, int):             # <<<<<<<<<<<<<<
 *             try:
 *                 initializer = hash(initializer)
*/
  }

  /* "pyarrow/_compute.pyx":2429
 *                     f"or a hashable object; got {initializer!r}")
 * 
 *         if initializer < 0:             # <<<<<<<<<<<<<<
 *             initializer += 2**64
 *         self.wrapped.reset(new CRandomOptions(
*/
  __pyx_t_10 = PyObject_RichCompare(__pyx_v_initializer, __pyx_mstate_global->__pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2429, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2429, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (__pyx_t_2) {

    /* "pyarrow/_compute.pyx":2430
 * 
 *         if initializer < 0:
 *             initializer += 2**64             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CRandomOptions(
 *             CRandomOptions.FromSeed(initializer)))
*/
    __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_v_initializer, __pyx_mstate_global->__pyx_int_0x10000000000000000); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2430, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF_SET(__pyx_v_initializer, __pyx_t_10);
    __pyx_t_10 = 0;

    /* "pyarrow/_compute.pyx":2429
 *                     f"or a hashable object; got {initializer!r}")
 * 
 *         if initializer < 0:             # <<<<<<<<<<<<<<
 *             initializer += 2**64
 *         self.wrapped.reset(new CRandomOptions(
*/
  }

  /* "pyarrow/_compute.pyx":2432
 *             initializer += 2**64
 *         self.wrapped.reset(new CRandomOptions(
 *             CRandomOptions.FromSeed(initializer)))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_16 = __Pyx_PyLong_As_uint64_t(__pyx_v_initializer); if (unlikely((__pyx_t_16 == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2432, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2431
 *         if initializer < 0:
 *             initializer += 2**64
 *         self.wrapped.reset(new CRandomOptions(             # <<<<<<<<<<<<<<
 *             CRandomOptions.FromSeed(initializer)))
 * 
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::RandomOptions(arrow::compute::RandomOptions::FromSeed(__pyx_t_16)));

  /* "pyarrow/_compute.pyx":2415
 * 
 * cdef class _RandomOptions(FunctionOptions):
 *     def _set_options(self, initializer):             # <<<<<<<<<<<<<<
 *         if initializer == 'system':
 *             self.wrapped.reset(new CRandomOptions(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pyarrow._compute._RandomOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_initializer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_14_RandomOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_14_RandomOptions_2__reduce_cython__, "_RandomOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_14_RandomOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_RandomOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_RandomOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_14_RandomOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14_RandomOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__RandomOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14_RandomOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RandomOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RandomOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_14_RandomOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_14_RandomOptions_4__setstate_cython__, "_RandomOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_14_RandomOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_RandomOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_RandomOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_14_RandomOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RandomOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_14_RandomOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__RandomOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_14_RandomOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RandomOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RandomOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2449
 *     """
 * 
 *     def __init__(self, *, initializer='system'):             # <<<<<<<<<<<<<<
 *         self._set_options(initializer)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_13RandomOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_13RandomOptions___init__, "RandomOptions.__init__(self, *, initializer='system')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_13RandomOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13RandomOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13RandomOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_13RandomOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_initializer = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_initializer,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2449, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2449, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2449, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_system)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(0, 2449, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2449, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_system)));
    }
    __pyx_v_self = values[0];
    __pyx_v_initializer = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2449, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.RandomOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_13RandomOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_initializer);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_13RandomOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_initializer) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2450
 * 
 *     def __init__(self, *, initializer='system'):
 *         self._set_options(initializer)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_initializer};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2450, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2449
 *     """
 * 
 *     def __init__(self, *, initializer='system'):             # <<<<<<<<<<<<<<
 *         self._set_options(initializer)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.RandomOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2462
 *     }
 * 
 *     def _set_options(self, sort_keys, null_placement, tiebreaker):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_RankOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_RankOptions__set_options, "_RankOptions._set_options(self, sort_keys, null_placement, tiebreaker)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_RankOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_RankOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_RankOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_RankOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_sort_keys = 0;
  PyObject *__pyx_v_null_placement = 0;
  PyObject *__pyx_v_tiebreaker = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_sort_keys,&__pyx_mstate_global->__pyx_n_u_null_placement_2,&__pyx_mstate_global->__pyx_n_u_tiebreaker,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2462, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2462, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2462, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2462, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2462, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, i); __PYX_ERR(0, 2462, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2462, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2462, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2462, __pyx_L3_error)
    }
    __pyx_v_sort_keys = values[0];
    __pyx_v_null_placement = values[1];
    __pyx_v_tiebreaker = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 2462, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RankOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_RankOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__RankOptions *)__pyx_v_self), __pyx_v_sort_keys, __pyx_v_null_placement, __pyx_v_tiebreaker);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_RankOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RankOptions *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement, PyObject *__pyx_v_tiebreaker) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::vector< arrow::compute::SortKey>  __pyx_t_4;
   arrow::compute::NullPlacement __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  enum arrow::compute::RankOptions::Tiebreaker __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  size_t __pyx_t_14;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2463
 * 
 *     def _set_options(self, sort_keys, null_placement, tiebreaker):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CRankOptions(unwrap_sort_keys(sort_keys),
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "pyarrow/_compute.pyx":2465
 *         try:
 *             self.wrapped.reset(
 *                 new CRankOptions(unwrap_sort_keys(sort_keys),             # <<<<<<<<<<<<<<
 *                                  unwrap_null_placement(null_placement),
 *                                  self._tiebreaker_map[tiebreaker])
*/
      __pyx_t_4 = __pyx_f_7pyarrow_8_compute_unwrap_sort_keys(__pyx_v_sort_keys, NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2465, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":2466
 *             self.wrapped.reset(
 *                 new CRankOptions(unwrap_sort_keys(sort_keys),
 *                                  unwrap_null_placement(null_placement),             # <<<<<<<<<<<<<<
 *                                  self._tiebreaker_map[tiebreaker])
 *             )
*/
      __pyx_t_5 = __pyx_f_7pyarrow_8_compute_unwrap_null_placement(__pyx_v_null_placement); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2466, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":2467
 *                 new CRankOptions(unwrap_sort_keys(sort_keys),
 *                                  unwrap_null_placement(null_placement),
 *                                  self._tiebreaker_map[tiebreaker])             # <<<<<<<<<<<<<<
 *             )
 *         except KeyError:
*/
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_tiebreaker_map); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2467, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_tiebreaker); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2467, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_8 = ((enum arrow::compute::RankOptions::Tiebreaker)__Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_RankOptions_3a__3a_Tiebreaker(__pyx_t_7)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2467, __pyx_L3_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "pyarrow/_compute.pyx":2464
 *     def _set_options(self, sort_keys, null_placement, tiebreaker):
 *         try:
 *             self.wrapped.reset(             # <<<<<<<<<<<<<<
 *                 new CRankOptions(unwrap_sort_keys(sort_keys),
 *                                  unwrap_null_placement(null_placement),
*/
      __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::RankOptions(__pyx_t_4, __pyx_t_5, __pyx_t_8));

      /* "pyarrow/_compute.pyx":2463
 * 
 *     def _set_options(self, sort_keys, null_placement, tiebreaker):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CRankOptions(unwrap_sort_keys(sort_keys),
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "pyarrow/_compute.pyx":2469
 *                                  self._tiebreaker_map[tiebreaker])
 *             )
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             _raise_invalid_function_option(tiebreaker, "tiebreaker")
 * 
*/
    __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError))));
    if (__pyx_t_9) {
      __Pyx_AddTraceback("pyarrow._compute._RankOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_10) < 0) __PYX_ERR(0, 2469, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_10);

      /* "pyarrow/_compute.pyx":2470
 *             )
 *         except KeyError:
 *             _raise_invalid_function_option(tiebreaker, "tiebreaker")             # <<<<<<<<<<<<<<
 * 
 * 
*/
      __pyx_t_12 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2470, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        assert(__pyx_t_12);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_13, __pyx__function);
        __pyx_t_14 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_v_tiebreaker, __pyx_mstate_global->__pyx_n_u_tiebreaker};
        __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_14, (3-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2470, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_11);
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;

    /* "pyarrow/_compute.pyx":2463
 * 
 *     def _set_options(self, sort_keys, null_placement, tiebreaker):
 *         try:             # <<<<<<<<<<<<<<
 *             self.wrapped.reset(
 *                 new CRankOptions(unwrap_sort_keys(sort_keys),
*/
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "pyarrow/_compute.pyx":2462
 *     }
 * 
 *     def _set_options(self, sort_keys, null_placement, tiebreaker):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("pyarrow._compute._RankOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_RankOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_RankOptions_2__reduce_cython__, "_RankOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_RankOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_RankOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_RankOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_RankOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_RankOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__RankOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_RankOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RankOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RankOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_12_RankOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_12_RankOptions_4__setstate_cython__, "_RankOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_12_RankOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_RankOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_RankOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_12_RankOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RankOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_12_RankOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__RankOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_12_RankOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RankOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RankOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2502
 *     """
 * 
 *     def __init__(self, sort_keys="ascending", *, null_placement="at_end", tiebreaker="first"):             # <<<<<<<<<<<<<<
 *         self._set_options(sort_keys, null_placement, tiebreaker)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11RankOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11RankOptions___init__, "RankOptions.__init__(self, sort_keys='ascending', *, null_placement='at_end', tiebreaker='first')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11RankOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11RankOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11RankOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11RankOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_sort_keys = 0;
  PyObject *__pyx_v_null_placement = 0;
  PyObject *__pyx_v_tiebreaker = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_sort_keys,&__pyx_mstate_global->__pyx_n_u_null_placement_2,&__pyx_mstate_global->__pyx_n_u_tiebreaker,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2502, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2502, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2502, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2502, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_ascending)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_first)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 2502, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2502, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2502, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_ascending)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)));
      if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_first)));
    }
    __pyx_v_self = values[0];
    __pyx_v_sort_keys = values[1];
    __pyx_v_null_placement = values[2];
    __pyx_v_tiebreaker = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2502, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.RankOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11RankOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_sort_keys, __pyx_v_null_placement, __pyx_v_tiebreaker);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11RankOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement, PyObject *__pyx_v_tiebreaker) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2503
 * 
 *     def __init__(self, sort_keys="ascending", *, null_placement="at_end", tiebreaker="first"):
 *         self._set_options(sort_keys, null_placement, tiebreaker)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_sort_keys, __pyx_v_null_placement, __pyx_v_tiebreaker};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (4-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2503, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2502
 *     """
 * 
 *     def __init__(self, sort_keys="ascending", *, null_placement="at_end", tiebreaker="first"):             # <<<<<<<<<<<<<<
 *         self._set_options(sort_keys, null_placement, tiebreaker)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.RankOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2508
 * cdef class _RankQuantileOptions(FunctionOptions):
 * 
 *     def _set_options(self, sort_keys, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CRankQuantileOptions(unwrap_sort_keys(sort_keys),
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_RankQuantileOptions__set_options, "_RankQuantileOptions._set_options(self, sort_keys, null_placement)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_RankQuantileOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RankQuantileOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_sort_keys = 0;
  PyObject *__pyx_v_null_placement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_sort_keys,&__pyx_mstate_global->__pyx_n_u_null_placement_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2508, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2508, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2508, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2508, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 2508, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2508, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2508, __pyx_L3_error)
    }
    __pyx_v_sort_keys = values[0];
    __pyx_v_null_placement = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2508, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RankQuantileOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_RankQuantileOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions *)__pyx_v_self), __pyx_v_sort_keys, __pyx_v_null_placement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_RankQuantileOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::vector< arrow::compute::SortKey>  __pyx_t_1;
   arrow::compute::NullPlacement __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2510
 *     def _set_options(self, sort_keys, null_placement):
 *         self.wrapped.reset(
 *             new CRankQuantileOptions(unwrap_sort_keys(sort_keys),             # <<<<<<<<<<<<<<
 *                                      unwrap_null_placement(null_placement))
 *         )
*/
  __pyx_t_1 = __pyx_f_7pyarrow_8_compute_unwrap_sort_keys(__pyx_v_sort_keys, NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2510, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2511
 *         self.wrapped.reset(
 *             new CRankQuantileOptions(unwrap_sort_keys(sort_keys),
 *                                      unwrap_null_placement(null_placement))             # <<<<<<<<<<<<<<
 *         )
 * 
*/
  __pyx_t_2 = __pyx_f_7pyarrow_8_compute_unwrap_null_placement(__pyx_v_null_placement); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2511, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2509
 * 
 *     def _set_options(self, sort_keys, null_placement):
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CRankQuantileOptions(unwrap_sort_keys(sort_keys),
 *                                      unwrap_null_placement(null_placement))
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::RankQuantileOptions(__pyx_t_1, __pyx_t_2));

  /* "pyarrow/_compute.pyx":2508
 * cdef class _RankQuantileOptions(FunctionOptions):
 * 
 *     def _set_options(self, sort_keys, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CRankQuantileOptions(unwrap_sort_keys(sort_keys),
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RankQuantileOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_RankQuantileOptions_2__reduce_cython__, "_RankQuantileOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_RankQuantileOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RankQuantileOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_RankQuantileOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_RankQuantileOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RankQuantileOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20_RankQuantileOptions_4__setstate_cython__, "_RankQuantileOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_20_RankQuantileOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RankQuantileOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._RankQuantileOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20_RankQuantileOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20_RankQuantileOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._RankQuantileOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2533
 *     """
 * 
 *     def __init__(self, sort_keys="ascending", *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(sort_keys, null_placement)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19RankQuantileOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_19RankQuantileOptions___init__, "RankQuantileOptions.__init__(self, sort_keys='ascending', *, null_placement='at_end')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19RankQuantileOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19RankQuantileOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19RankQuantileOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_19RankQuantileOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_sort_keys = 0;
  PyObject *__pyx_v_null_placement = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_sort_keys,&__pyx_mstate_global->__pyx_n_u_null_placement_2,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2533, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2533, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2533, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2533, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_ascending)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(0, 2533, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2533, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2533, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_ascending)));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)));
    }
    __pyx_v_self = values[0];
    __pyx_v_sort_keys = values[1];
    __pyx_v_null_placement = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2533, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.RankQuantileOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_19RankQuantileOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_sort_keys, __pyx_v_null_placement);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_19RankQuantileOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_sort_keys, PyObject *__pyx_v_null_placement) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2534
 * 
 *     def __init__(self, sort_keys="ascending", *, null_placement="at_end"):
 *         self._set_options(sort_keys, null_placement)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_sort_keys, __pyx_v_null_placement};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2533
 *     """
 * 
 *     def __init__(self, sort_keys="ascending", *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(sort_keys, null_placement)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.RankQuantileOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2539
 * cdef class _PivotWiderOptions(FunctionOptions):
 * 
 *     def _set_options(self, key_names, unexpected_key_behavior):             # <<<<<<<<<<<<<<
 *         cdef:
 *             vector[c_string] c_key_names
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18_PivotWiderOptions__set_options, "_PivotWiderOptions._set_options(self, key_names, unexpected_key_behavior)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18_PivotWiderOptions_1_set_options = {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_PivotWiderOptions__set_options};
static PyObject *__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_1_set_options(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_key_names = 0;
  PyObject *__pyx_v_unexpected_key_behavior = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_set_options (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_key_names,&__pyx_mstate_global->__pyx_n_u_unexpected_key_behavior,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2539, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2539, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2539, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_set_options", 0) < (0)) __PYX_ERR(0, 2539, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, i); __PYX_ERR(0, 2539, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2539, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2539, __pyx_L3_error)
    }
    __pyx_v_key_names = values[0];
    __pyx_v_unexpected_key_behavior = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_set_options", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2539, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._PivotWiderOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18_PivotWiderOptions__set_options(((struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions *)__pyx_v_self), __pyx_v_key_names, __pyx_v_unexpected_key_behavior);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18_PivotWiderOptions__set_options(struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions *__pyx_v_self, PyObject *__pyx_v_key_names, PyObject *__pyx_v_unexpected_key_behavior) {
  std::vector<std::string>  __pyx_v_c_key_names;
  enum arrow::compute::PivotWiderOptions::UnexpectedKeyBehavior __pyx_v_c_unexpected_key_behavior;
  PyObject *__pyx_v_k = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  std::string __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_set_options", 0);

  /* "pyarrow/_compute.pyx":2543
 *             vector[c_string] c_key_names
 *             PivotWiderUnexpectedKeyBehavior c_unexpected_key_behavior
 *         if unexpected_key_behavior == "ignore":             # <<<<<<<<<<<<<<
 *             c_unexpected_key_behavior = PivotWiderUnexpectedKeyBehavior_Ignore
 *         elif unexpected_key_behavior == "raise":
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unexpected_key_behavior, __pyx_mstate_global->__pyx_n_u_ignore, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 2543, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2544
 *             PivotWiderUnexpectedKeyBehavior c_unexpected_key_behavior
 *         if unexpected_key_behavior == "ignore":
 *             c_unexpected_key_behavior = PivotWiderUnexpectedKeyBehavior_Ignore             # <<<<<<<<<<<<<<
 *         elif unexpected_key_behavior == "raise":
 *             c_unexpected_key_behavior = PivotWiderUnexpectedKeyBehavior_Raise
*/
    __pyx_v_c_unexpected_key_behavior = arrow::compute::PivotWiderOptions::kIgnore;

    /* "pyarrow/_compute.pyx":2543
 *             vector[c_string] c_key_names
 *             PivotWiderUnexpectedKeyBehavior c_unexpected_key_behavior
 *         if unexpected_key_behavior == "ignore":             # <<<<<<<<<<<<<<
 *             c_unexpected_key_behavior = PivotWiderUnexpectedKeyBehavior_Ignore
 *         elif unexpected_key_behavior == "raise":
*/
    goto __pyx_L3;
  }

  /* "pyarrow/_compute.pyx":2545
 *         if unexpected_key_behavior == "ignore":
 *             c_unexpected_key_behavior = PivotWiderUnexpectedKeyBehavior_Ignore
 *         elif unexpected_key_behavior == "raise":             # <<<<<<<<<<<<<<
 *             c_unexpected_key_behavior = PivotWiderUnexpectedKeyBehavior_Raise
 *         else:
*/
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_unexpected_key_behavior, __pyx_mstate_global->__pyx_n_u_raise, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 2545, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":2546
 *             c_unexpected_key_behavior = PivotWiderUnexpectedKeyBehavior_Ignore
 *         elif unexpected_key_behavior == "raise":
 *             c_unexpected_key_behavior = PivotWiderUnexpectedKeyBehavior_Raise             # <<<<<<<<<<<<<<
 *         else:
 *             raise ValueError(
*/
    __pyx_v_c_unexpected_key_behavior = arrow::compute::PivotWiderOptions::kRaise;

    /* "pyarrow/_compute.pyx":2545
 *         if unexpected_key_behavior == "ignore":
 *             c_unexpected_key_behavior = PivotWiderUnexpectedKeyBehavior_Ignore
 *         elif unexpected_key_behavior == "raise":             # <<<<<<<<<<<<<<
 *             c_unexpected_key_behavior = PivotWiderUnexpectedKeyBehavior_Raise
 *         else:
*/
    goto __pyx_L3;
  }

  /* "pyarrow/_compute.pyx":2548
 *             c_unexpected_key_behavior = PivotWiderUnexpectedKeyBehavior_Raise
 *         else:
 *             raise ValueError(             # <<<<<<<<<<<<<<
 *                 f"Unsupported value for unexpected_key_behavior: "
 *                 f"expected 'ignore' or 'raise', got {unexpected_key_behavior!r}")
*/
  /*else*/ {
    __pyx_t_3 = NULL;

    /* "pyarrow/_compute.pyx":2550
 *             raise ValueError(
 *                 f"Unsupported value for unexpected_key_behavior: "
 *                 f"expected 'ignore' or 'raise', got {unexpected_key_behavior!r}")             # <<<<<<<<<<<<<<
 * 
 *         for k in key_names:
*/
    __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_unexpected_key_behavior), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);

    /* "pyarrow/_compute.pyx":2549
 *         else:
 *             raise ValueError(
 *                 f"Unsupported value for unexpected_key_behavior: "             # <<<<<<<<<<<<<<
 *                 f"expected 'ignore' or 'raise', got {unexpected_key_behavior!r}")
 * 
*/
    __pyx_t_5 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Unsupported_value_for_unexpected, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2548, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 2548, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "pyarrow/_compute.pyx":2552
 *                 f"expected 'ignore' or 'raise', got {unexpected_key_behavior!r}")
 * 
 *         for k in key_names:             # <<<<<<<<<<<<<<
 *             c_key_names.push_back(tobytes(k))
 * 
*/
  if (likely(PyList_CheckExact(__pyx_v_key_names)) || PyTuple_CheckExact(__pyx_v_key_names)) {
    __pyx_t_2 = __pyx_v_key_names; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_key_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2552, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2552, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 2552, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        __pyx_t_5 = __Pyx_PyList_GetItemRefFast(__pyx_t_2, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_7;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 2552, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7));
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_7);
        #endif
        ++__pyx_t_7;
      }
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2552, __pyx_L1_error)
    } else {
      __pyx_t_5 = __pyx_t_8(__pyx_t_2);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 2552, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "pyarrow/_compute.pyx":2553
 * 
 *         for k in key_names:
 *             c_key_names.push_back(tobytes(k))             # <<<<<<<<<<<<<<
 * 
 *         self.wrapped.reset(
*/
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2553, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_k};
      __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2553, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }
    __pyx_t_9 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_5); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2553, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    try {
      __pyx_v_c_key_names.push_back(__pyx_t_9);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 2553, __pyx_L1_error)
    }

    /* "pyarrow/_compute.pyx":2552
 *                 f"expected 'ignore' or 'raise', got {unexpected_key_behavior!r}")
 * 
 *         for k in key_names:             # <<<<<<<<<<<<<<
 *             c_key_names.push_back(tobytes(k))
 * 
*/
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2555
 *             c_key_names.push_back(tobytes(k))
 * 
 *         self.wrapped.reset(             # <<<<<<<<<<<<<<
 *             new CPivotWiderOptions(move(c_key_names), c_unexpected_key_behavior)
 *         )
*/
  __pyx_v_self->__pyx_base.wrapped.reset(new arrow::compute::PivotWiderOptions(cython_std::move<std::vector<std::string> >(__pyx_v_c_key_names), __pyx_v_c_unexpected_key_behavior));

  /* "pyarrow/_compute.pyx":2539
 * cdef class _PivotWiderOptions(FunctionOptions):
 * 
 *     def _set_options(self, key_names, unexpected_key_behavior):             # <<<<<<<<<<<<<<
 *         cdef:
 *             vector[c_string] c_key_names
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pyarrow._compute._PivotWiderOptions._set_options", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_k);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18_PivotWiderOptions_2__reduce_cython__, "_PivotWiderOptions.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18_PivotWiderOptions_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_PivotWiderOptions_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18_PivotWiderOptions_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18_PivotWiderOptions_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._PivotWiderOptions.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18_PivotWiderOptions_4__setstate_cython__, "_PivotWiderOptions.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_18_PivotWiderOptions_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_PivotWiderOptions_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._PivotWiderOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18_PivotWiderOptions_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18_PivotWiderOptions_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_wrapped_cannot_be_converted, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._PivotWiderOptions.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2577
 *     """
 * 
 *     def __init__(self, key_names, *, unexpected_key_behavior="ignore"):             # <<<<<<<<<<<<<<
 *         self._set_options(key_names, unexpected_key_behavior)
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_17PivotWiderOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_17PivotWiderOptions___init__, "PivotWiderOptions.__init__(self, key_names, *, unexpected_key_behavior='ignore')");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_17PivotWiderOptions_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17PivotWiderOptions_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17PivotWiderOptions___init__};
static PyObject *__pyx_pw_7pyarrow_8_compute_17PivotWiderOptions_1__init__(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_key_names = 0;
  PyObject *__pyx_v_unexpected_key_behavior = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_key_names,&__pyx_mstate_global->__pyx_n_u_unexpected_key_behavior,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2577, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2577, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2577, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(0, 2577, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_ignore)));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(0, 2577, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2577, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2577, __pyx_L3_error)
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)__pyx_mstate_global->__pyx_n_u_ignore)));
    }
    __pyx_v_self = values[0];
    __pyx_v_key_names = values[1];
    __pyx_v_unexpected_key_behavior = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 2577, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.PivotWiderOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_17PivotWiderOptions___init__(__pyx_self, __pyx_v_self, __pyx_v_key_names, __pyx_v_unexpected_key_behavior);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_17PivotWiderOptions___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_key_names, PyObject *__pyx_v_unexpected_key_behavior) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2578
 * 
 *     def __init__(self, key_names, *, unexpected_key_behavior="ignore"):
 *         self._set_options(key_names, unexpected_key_behavior)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = __pyx_v_self;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_key_names, __pyx_v_unexpected_key_behavior};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_options, __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2578, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2577
 *     """
 * 
 *     def __init__(self, key_names, *, unexpected_key_behavior="ignore"):             # <<<<<<<<<<<<<<
 *         self._set_options(key_names, unexpected_key_behavior)
 * 
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.PivotWiderOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2615
 *     """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         msg = 'Expression is an abstract class thus cannot be initialized.'
 *         raise TypeError(msg)
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_10Expression_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_10Expression_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__init__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression___init__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_10Expression___init__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self) {
  PyObject *__pyx_v_msg = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2616
 * 
 *     def __init__(self):
 *         msg = 'Expression is an abstract class thus cannot be initialized.'             # <<<<<<<<<<<<<<
 *         raise TypeError(msg)
 * 
*/
  __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Expression_is_an_abstract_class);
  __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_Expression_is_an_abstract_class;

  /* "pyarrow/_compute.pyx":2617
 *     def __init__(self):
 *         msg = 'Expression is an abstract class thus cannot be initialized.'
 *         raise TypeError(msg)             # <<<<<<<<<<<<<<
 * 
 *     cdef void init(self, const CExpression& sp):
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_msg};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2617, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(0, 2617, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2615
 *     """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         msg = 'Expression is an abstract class thus cannot be initialized.'
 *         raise TypeError(msg)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_XDECREF(__pyx_v_msg);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2619
 *         raise TypeError(msg)
 * 
 *     cdef void init(self, const CExpression& sp):             # <<<<<<<<<<<<<<
 *         self.expr = sp
 * 
*/

static void __pyx_f_7pyarrow_8_compute_10Expression_init(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, arrow::compute::Expression const &__pyx_v_sp) {

  /* "pyarrow/_compute.pyx":2620
 * 
 *     cdef void init(self, const CExpression& sp):
 *         self.expr = sp             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __pyx_v_self->expr = __pyx_v_sp;

  /* "pyarrow/_compute.pyx":2619
 *         raise TypeError(msg)
 * 
 *     cdef void init(self, const CExpression& sp):             # <<<<<<<<<<<<<<
 *         self.expr = sp
 * 
*/

  /* function exit code */
}

/* "pyarrow/_compute.pyx":2622
 *         self.expr = sp
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef wrap(const CExpression& sp):
 *         cdef Expression self = Expression.__new__(Expression)
*/

static PyObject *__pyx_f_7pyarrow_8_compute_10Expression_wrap(arrow::compute::Expression const &__pyx_v_sp) {
  struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap", 0);

  /* "pyarrow/_compute.pyx":2624
 *     @staticmethod
 *     cdef wrap(const CExpression& sp):
 *         cdef Expression self = Expression.__new__(Expression)             # <<<<<<<<<<<<<<
 *         self.init(sp)
 *         return self
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_Expression(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2624, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_self = ((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2625
 *     cdef wrap(const CExpression& sp):
 *         cdef Expression self = Expression.__new__(Expression)
 *         self.init(sp)             # <<<<<<<<<<<<<<
 *         return self
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_Expression *)__pyx_v_self->__pyx_vtab)->init(__pyx_v_self, __pyx_v_sp); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2625, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2626
 *         cdef Expression self = Expression.__new__(Expression)
 *         self.init(sp)
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     cdef inline CExpression unwrap(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2622
 *         self.expr = sp
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef wrap(const CExpression& sp):
 *         cdef Expression self = Expression.__new__(Expression)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.Expression.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_self);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2628
 *         return self
 * 
 *     cdef inline CExpression unwrap(self):             # <<<<<<<<<<<<<<
 *         return self.expr
 * 
*/

static CYTHON_INLINE arrow::compute::Expression __pyx_f_7pyarrow_8_compute_10Expression_unwrap(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self) {
  arrow::compute::Expression __pyx_r;

  /* "pyarrow/_compute.pyx":2629
 * 
 *     cdef inline CExpression unwrap(self):
 *         return self.expr             # <<<<<<<<<<<<<<
 * 
 *     def equals(self, Expression other):
*/
  __pyx_r = __pyx_v_self->expr;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2628
 *         return self
 * 
 *     cdef inline CExpression unwrap(self):             # <<<<<<<<<<<<<<
 *         return self.expr
 * 
*/

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2631
 *         return self.expr
 * 
 *     def equals(self, Expression other):             # <<<<<<<<<<<<<<
 *         """
 *         Parameters
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_3equals(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_2equals, "Expression.equals(self, Expression other)\n\nParameters\n----------\nother : pyarrow.dataset.Expression\n\nReturns\n-------\nbool");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_3equals = {"equals", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_3equals, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_2equals};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_3equals(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_other = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("equals (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_other,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2631, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2631, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "equals", 0) < (0)) __PYX_ERR(0, 2631, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("equals", 1, 1, 1, i); __PYX_ERR(0, 2631, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2631, __pyx_L3_error)
    }
    __pyx_v_other = ((struct __pyx_obj_7pyarrow_8_compute_Expression *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("equals", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2631, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Expression.equals", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, 1, "other", 0))) __PYX_ERR(0, 2631, __pyx_L1_error)
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_2equals(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), __pyx_v_other);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_2equals(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  arrow::compute::Expression __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("equals", 0);

  /* "pyarrow/_compute.pyx":2641
 *         bool
 *         """
 *         return self.expr.Equals(other.unwrap())             # <<<<<<<<<<<<<<
 * 
 *     def __str__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7pyarrow_8_compute_10Expression_unwrap(__pyx_v_other); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2641, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->expr.Equals(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2631
 *         return self.expr
 * 
 *     def equals(self, Expression other):             # <<<<<<<<<<<<<<
 *         """
 *         Parameters
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.Expression.equals", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2643
 *         return self.expr.Equals(other.unwrap())
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return frombytes(self.expr.ToString())
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_5__str__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_5__str__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_4__str__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_4__str__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__str__", 0);

  /* "pyarrow/_compute.pyx":2644
 * 
 *     def __str__(self):
 *         return frombytes(self.expr.ToString())             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_frombytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_6libcpp_6string_std__in_string(__pyx_v_self->expr.ToString()); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2644, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2643
 *         return self.expr.Equals(other.unwrap())
 * 
 *     def __str__(self):             # <<<<<<<<<<<<<<
 *         return frombytes(self.expr.ToString())
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2646
 *         return frombytes(self.expr.ToString())
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"<pyarrow.compute.{self.__class__.__name__} {self}>"
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_7__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_7__repr__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_6__repr__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_6__repr__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3[5];
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "pyarrow/_compute.pyx":2647
 * 
 *     def __repr__(self):
 *         return f"<pyarrow.compute.{self.__class__.__name__} {self}>"             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_t_2, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_FormatSimple(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3[0] = __pyx_mstate_global->__pyx_kp_u_pyarrow_compute;
  __pyx_t_3[1] = __pyx_t_1;
  __pyx_t_3[2] = __pyx_mstate_global->__pyx_kp_u__8;
  __pyx_t_3[3] = __pyx_t_2;
  __pyx_t_3[4] = __pyx_mstate_global->__pyx_kp_u__4;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_3, 5, 17 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 1 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2646
 *         return frombytes(self.expr.ToString())
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return f"<pyarrow.compute.{self.__class__.__name__} {self}>"
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2649
 *         return f"<pyarrow.compute.{self.__class__.__name__} {self}>"
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def from_substrait(object message not None):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_9from_substrait(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_8from_substrait, "Expression.from_substrait(message)\n\nDeserialize an expression from Substrait\n\nThe serialized message must be an ExtendedExpression message that has\nonly a single expression.  The name of the expression and the schema\nthe expression was bound to will be ignored.  Use\npyarrow.substrait.deserialize_expressions if this information is needed\nor if the message might contain multiple expressions.\n\nParameters\n----------\nmessage : bytes or Buffer or a protobuf Message\n    The Substrait message to deserialize\n\nReturns\n-------\nExpression\n    The deserialized expression");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_9from_substrait = {"from_substrait", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_9from_substrait, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_8from_substrait};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_9from_substrait(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_message = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_substrait (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_message,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2649, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2649, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "from_substrait", 0) < (0)) __PYX_ERR(0, 2649, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("from_substrait", 1, 1, 1, i); __PYX_ERR(0, 2649, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2649, __pyx_L3_error)
    }
    __pyx_v_message = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("from_substrait", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2649, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Expression.from_substrait", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_message) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "message"); __PYX_ERR(0, 2650, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_8from_substrait(__pyx_v_message);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_8from_substrait(PyObject *__pyx_v_message) {
  PyObject *__pyx_v_expressions = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("from_substrait", 0);

  /* "pyarrow/_compute.pyx":2670
 *             The deserialized expression
 *         """
 *         expressions = _pas().BoundExpressions.from_substrait(message).expressions             # <<<<<<<<<<<<<<
 *         if len(expressions) == 0:
 *             raise ValueError("Substrait message did not contain any expressions")
*/
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pas_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_BoundExpressions); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_t_5;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_message};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_from_substrait, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_expressions); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_expressions = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "pyarrow/_compute.pyx":2671
 *         """
 *         expressions = _pas().BoundExpressions.from_substrait(message).expressions
 *         if len(expressions) == 0:             # <<<<<<<<<<<<<<
 *             raise ValueError("Substrait message did not contain any expressions")
 *         if len(expressions) > 1:
*/
  __pyx_t_7 = PyObject_Length(__pyx_v_expressions); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2671, __pyx_L1_error)
  __pyx_t_8 = (__pyx_t_7 == 0);
  if (unlikely(__pyx_t_8)) {

    /* "pyarrow/_compute.pyx":2672
 *         expressions = _pas().BoundExpressions.from_substrait(message).expressions
 *         if len(expressions) == 0:
 *             raise ValueError("Substrait message did not contain any expressions")             # <<<<<<<<<<<<<<
 *         if len(expressions) > 1:
 *             raise ValueError(
*/
    __pyx_t_1 = NULL;
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_Substrait_message_did_not_contai};
      __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2672, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_Raise(__pyx_t_5, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __PYX_ERR(0, 2672, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":2671
 *         """
 *         expressions = _pas().BoundExpressions.from_substrait(message).expressions
 *         if len(expressions) == 0:             # <<<<<<<<<<<<<<
 *             raise ValueError("Substrait message did not contain any expressions")
 *         if len(expressions) > 1:
*/
  }

  /* "pyarrow/_compute.pyx":2673
 *         if len(expressions) == 0:
 *             raise ValueError("Substrait message did not contain any expressions")
 *         if len(expressions) > 1:             # <<<<<<<<<<<<<<
 *             raise ValueError(
 *                 "Substrait message contained multiple expressions.  Use pyarrow.substrait.deserialize_expressions instead")
*/
  __pyx_t_7 = PyObject_Length(__pyx_v_expressions); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2673, __pyx_L1_error)
  __pyx_t_8 = (__pyx_t_7 > 1);
  if (unlikely(__pyx_t_8)) {

    /* "pyarrow/_compute.pyx":2674
 *             raise ValueError("Substrait message did not contain any expressions")
 *         if len(expressions) > 1:
 *             raise ValueError(             # <<<<<<<<<<<<<<
 *                 "Substrait message contained multiple expressions.  Use pyarrow.substrait.deserialize_expressions instead")
 *         return next(iter(expressions.values()))
*/
    __pyx_t_1 = NULL;
    __pyx_t_6 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_Substrait_message_contained_mult};
      __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2674, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_Raise(__pyx_t_5, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __PYX_ERR(0, 2674, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":2673
 *         if len(expressions) == 0:
 *             raise ValueError("Substrait message did not contain any expressions")
 *         if len(expressions) > 1:             # <<<<<<<<<<<<<<
 *             raise ValueError(
 *                 "Substrait message contained multiple expressions.  Use pyarrow.substrait.deserialize_expressions instead")
*/
  }

  /* "pyarrow/_compute.pyx":2676
 *             raise ValueError(
 *                 "Substrait message contained multiple expressions.  Use pyarrow.substrait.deserialize_expressions instead")
 *         return next(iter(expressions.values()))             # <<<<<<<<<<<<<<
 * 
 *     def to_substrait(self, Schema schema not None, c_bool allow_arrow_extensions=False):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_v_expressions;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
    __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_values, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2676, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
  }
  __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyIter_Next(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2649
 *         return f"<pyarrow.compute.{self.__class__.__name__} {self}>"
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def from_substrait(object message not None):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pyarrow._compute.Expression.from_substrait", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_expressions);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2678
 *         return next(iter(expressions.values()))
 * 
 *     def to_substrait(self, Schema schema not None, c_bool allow_arrow_extensions=False):             # <<<<<<<<<<<<<<
 *         """
 *         Serialize the expression using Substrait
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_11to_substrait(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_10to_substrait, "Expression.to_substrait(self, Schema schema, bool allow_arrow_extensions=False)\n\nSerialize the expression using Substrait\n\nThe expression will be serialized as an ExtendedExpression message that has a\nsingle expression named \"expression\"\n\nParameters\n----------\nschema : Schema\n    The input schema the expression will be bound to\nallow_arrow_extensions : bool, default False\n    If False then only functions that are part of the core Substrait function\n    definitions will be allowed.  Set this to True to allow pyarrow-specific functions\n    but the result may not be accepted by other compute libraries.\n\nReturns\n-------\nBuffer\n    A buffer containing the serialized Protobuf plan.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_11to_substrait = {"to_substrait", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_11to_substrait, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_10to_substrait};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_11to_substrait(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_7pyarrow_3lib_Schema *__pyx_v_schema = 0;
  bool __pyx_v_allow_arrow_extensions;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("to_substrait (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_schema,&__pyx_mstate_global->__pyx_n_u_allow_arrow_extensions,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2678, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2678, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2678, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "to_substrait", 0) < (0)) __PYX_ERR(0, 2678, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_substrait", 0, 1, 2, i); __PYX_ERR(0, 2678, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2678, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2678, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_schema = ((struct __pyx_obj_7pyarrow_3lib_Schema *)values[0]);
    if (values[1]) {
      __pyx_v_allow_arrow_extensions = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_allow_arrow_extensions == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2678, __pyx_L3_error)
    } else {
      __pyx_v_allow_arrow_extensions = ((bool)0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("to_substrait", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2678, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Expression.to_substrait", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_schema), __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Schema, 0, "schema", 0))) __PYX_ERR(0, 2678, __pyx_L1_error)
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_10to_substrait(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), __pyx_v_schema, __pyx_v_allow_arrow_extensions);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_10to_substrait(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, struct __pyx_obj_7pyarrow_3lib_Schema *__pyx_v_schema, bool __pyx_v_allow_arrow_extensions) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("to_substrait", 0);

  /* "pyarrow/_compute.pyx":2699
 *             A buffer containing the serialized Protobuf plan.
 *         """
 *         return _pas().serialize_expressions([self], ["expression"], schema, allow_arrow_extensions=allow_arrow_extensions)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pas_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_4);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_6 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2699, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_t_2 = __pyx_t_3;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2699, __pyx_L1_error);
  __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_expression);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_expression);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_mstate_global->__pyx_n_u_expression) != (0)) __PYX_ERR(0, 2699, __pyx_L1_error);
  __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_allow_arrow_extensions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[4 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, __pyx_t_5, __pyx_t_4, ((PyObject *)__pyx_v_schema)};
    __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2699, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_allow_arrow_extensions, __pyx_t_7, __pyx_t_8, __pyx_callargs+4, 0) < (0)) __PYX_ERR(0, 2699, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_serialize_expressions, __pyx_callargs+__pyx_t_6, (4-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2699, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2678
 *         return next(iter(expressions.values()))
 * 
 *     def to_substrait(self, Schema schema not None, c_bool allow_arrow_extensions=False):             # <<<<<<<<<<<<<<
 *         """
 *         Serialize the expression using Substrait
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pyarrow._compute.Expression.to_substrait", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2701
 *         return _pas().serialize_expressions([self], ["expression"], schema, allow_arrow_extensions=allow_arrow_extensions)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _deserialize(Buffer buffer not None):
 *         return Expression.wrap(GetResultValue(CDeserializeExpression(
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_13_deserialize(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_12_deserialize, "Expression._deserialize(Buffer buffer)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_13_deserialize = {"_deserialize", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_13_deserialize, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_12_deserialize};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_13_deserialize(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_7pyarrow_3lib_Buffer *__pyx_v_buffer = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_deserialize (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_buffer,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2701, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2701, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_deserialize", 0) < (0)) __PYX_ERR(0, 2701, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_deserialize", 1, 1, 1, i); __PYX_ERR(0, 2701, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2701, __pyx_L3_error)
    }
    __pyx_v_buffer = ((struct __pyx_obj_7pyarrow_3lib_Buffer *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_deserialize", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2701, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Expression._deserialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_buffer), __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Buffer, 0, "buffer", 0))) __PYX_ERR(0, 2702, __pyx_L1_error)
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_12_deserialize(__pyx_v_buffer);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_12_deserialize(struct __pyx_obj_7pyarrow_3lib_Buffer *__pyx_v_buffer) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::shared_ptr< arrow::Buffer>  __pyx_t_1;
  arrow::compute::Expression __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_deserialize", 0);

  /* "pyarrow/_compute.pyx":2703
 *     @staticmethod
 *     def _deserialize(Buffer buffer not None):
 *         return Expression.wrap(GetResultValue(CDeserializeExpression(             # <<<<<<<<<<<<<<
 *             pyarrow_unwrap_buffer(buffer))))
 * 
*/
  __Pyx_XDECREF(__pyx_r);

  /* "pyarrow/_compute.pyx":2704
 *     def _deserialize(Buffer buffer not None):
 *         return Expression.wrap(GetResultValue(CDeserializeExpression(
 *             pyarrow_unwrap_buffer(buffer))))             # <<<<<<<<<<<<<<
 * 
 *     def __reduce__(self):
*/
  __pyx_t_1 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_buffer(((PyObject *)__pyx_v_buffer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2704, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2703
 *     @staticmethod
 *     def _deserialize(Buffer buffer not None):
 *         return Expression.wrap(GetResultValue(CDeserializeExpression(             # <<<<<<<<<<<<<<
 *             pyarrow_unwrap_buffer(buffer))))
 * 
*/
  __pyx_t_2 = arrow::py::GetResultValue<arrow::compute::Expression>(arrow::compute::Deserialize(__PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_1))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2703, __pyx_L1_error)
  __pyx_t_3 = __pyx_f_7pyarrow_8_compute_10Expression_wrap(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2701
 *         return _pas().serialize_expressions([self], ["expression"], schema, allow_arrow_extensions=allow_arrow_extensions)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _deserialize(Buffer buffer not None):
 *         return Expression.wrap(GetResultValue(CDeserializeExpression(
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Expression._deserialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2706
 *             pyarrow_unwrap_buffer(buffer))))
 * 
 *     def __reduce__(self):             # <<<<<<<<<<<<<<
 *         buffer = pyarrow_wrap_buffer(GetResultValue(
 *             CSerializeExpression(self.expr)))
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_15__reduce__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_14__reduce__, "Expression.__reduce__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_15__reduce__ = {"__reduce__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_15__reduce__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_14__reduce__};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_15__reduce__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_14__reduce__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_14__reduce__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self) {
  PyObject *__pyx_v_buffer = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::shared_ptr< arrow::Buffer>  __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce__", 0);

  /* "pyarrow/_compute.pyx":2707
 * 
 *     def __reduce__(self):
 *         buffer = pyarrow_wrap_buffer(GetResultValue(             # <<<<<<<<<<<<<<
 *             CSerializeExpression(self.expr)))
 *         return Expression._deserialize, (buffer,)
*/
  __pyx_t_1 = arrow::py::GetResultValue<std::shared_ptr< arrow::Buffer> >(arrow::compute::Serialize(__pyx_v_self->expr)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2707, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_7pyarrow_3lib_pyarrow_wrap_buffer(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_buffer = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2709
 *         buffer = pyarrow_wrap_buffer(GetResultValue(
 *             CSerializeExpression(self.expr)))
 *         return Expression._deserialize, (buffer,)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression), __pyx_mstate_global->__pyx_n_u_deserialize); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_buffer);
  __Pyx_GIVEREF(__pyx_v_buffer);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_buffer) != (0)) __PYX_ERR(0, 2709, __pyx_L1_error);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(0, 2709, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(0, 2709, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2706
 *             pyarrow_unwrap_buffer(buffer))))
 * 
 *     def __reduce__(self):             # <<<<<<<<<<<<<<
 *         buffer = pyarrow_wrap_buffer(GetResultValue(
 *             CSerializeExpression(self.expr)))
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_buffer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2711
 *         return Expression._deserialize, (buffer,)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef Expression _expr_or_scalar(object expr):
 *         if isinstance(expr, Expression):
*/

static struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_f_7pyarrow_8_compute_10Expression__expr_or_scalar(PyObject *__pyx_v_expr) {
  struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_expr_or_scalar", 0);

  /* "pyarrow/_compute.pyx":2713
 *     @staticmethod
 *     cdef Expression _expr_or_scalar(object expr):
 *         if isinstance(expr, Expression):             # <<<<<<<<<<<<<<
 *             return (<Expression> expr)
 *         return (<Expression> Expression._scalar(expr))
*/
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_expr, __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression); 
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2714
 *     cdef Expression _expr_or_scalar(object expr):
 *         if isinstance(expr, Expression):
 *             return (<Expression> expr)             # <<<<<<<<<<<<<<
 *         return (<Expression> Expression._scalar(expr))
 * 
*/
    __Pyx_XDECREF((PyObject *)__pyx_r);
    __Pyx_INCREF((PyObject *)((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_expr));
    __pyx_r = ((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_expr);
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":2713
 *     @staticmethod
 *     cdef Expression _expr_or_scalar(object expr):
 *         if isinstance(expr, Expression):             # <<<<<<<<<<<<<<
 *             return (<Expression> expr)
 *         return (<Expression> Expression._scalar(expr))
*/
  }

  /* "pyarrow/_compute.pyx":2715
 *         if isinstance(expr, Expression):
 *             return (<Expression> expr)
 *         return (<Expression> Expression._scalar(expr))             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_expr};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_scalar_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2715, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_INCREF((PyObject *)((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_t_2));
  __pyx_r = ((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2711
 *         return Expression._deserialize, (buffer,)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     cdef Expression _expr_or_scalar(object expr):
 *         if isinstance(expr, Expression):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Expression._expr_or_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2717
 *         return (<Expression> Expression._scalar(expr))
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _call(str function_name, list arguments, FunctionOptions options=None):
 *         cdef:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_17_call(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_16_call, "Expression._call(str function_name, list arguments, FunctionOptions options=None)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_17_call = {"_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_17_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_16_call};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_17_call(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_function_name = 0;
  PyObject *__pyx_v_arguments = 0;
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_options = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_call (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_arguments,&__pyx_mstate_global->__pyx_n_u_options,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2717, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2717, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2717, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2717, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_call", 0) < (0)) __PYX_ERR(0, 2717, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":2718
 * 
 *     @staticmethod
 *     def _call(str function_name, list arguments, FunctionOptions options=None):             # <<<<<<<<<<<<<<
 *         cdef:
 *             vector[CExpression] c_arguments
*/
      if (!values[2]) values[2] = __Pyx_NewRef((PyObject *)((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_call", 0, 2, 3, i); __PYX_ERR(0, 2717, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2717, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2717, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2717, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[2]) values[2] = __Pyx_NewRef((PyObject *)((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)Py_None));
    }
    __pyx_v_function_name = ((PyObject*)values[0]);
    __pyx_v_arguments = ((PyObject*)values[1]);
    __pyx_v_options = ((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_call", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 2717, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Expression._call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_function_name), (&PyUnicode_Type), 1, "function_name", 1))) __PYX_ERR(0, 2718, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_arguments), (&PyList_Type), 1, "arguments", 1))) __PYX_ERR(0, 2718, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_options), __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions, 1, "options", 0))) __PYX_ERR(0, 2718, __pyx_L1_error)
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_16_call(__pyx_v_function_name, __pyx_v_arguments, __pyx_v_options);

  /* "pyarrow/_compute.pyx":2717
 *         return (<Expression> Expression._scalar(expr))
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _call(str function_name, list arguments, FunctionOptions options=None):
 *         cdef:
*/

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_16_call(PyObject *__pyx_v_function_name, PyObject *__pyx_v_arguments, struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *__pyx_v_options) {
  std::vector<arrow::compute::Expression>  __pyx_v_c_arguments;
  std::shared_ptr< arrow::compute::FunctionOptions>  __pyx_v_c_options;
  PyObject *__pyx_v_argument = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  size_t __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  std::shared_ptr< arrow::compute::FunctionOptions>  __pyx_t_15;
  std::string __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_call", 0);

  /* "pyarrow/_compute.pyx":2723
 *             shared_ptr[CFunctionOptions] c_options
 * 
 *         for argument in arguments:             # <<<<<<<<<<<<<<
 *             if not isinstance(argument, Expression):
 *                 # Attempt to help convert this to an expression
*/
  if (unlikely(__pyx_v_arguments == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 2723, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_v_arguments; __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 2723, __pyx_L1_error)
      #endif
      if (__pyx_t_2 >= __pyx_temp) break;
    }
    __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
    ++__pyx_t_2;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2723, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_XDECREF_SET(__pyx_v_argument, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "pyarrow/_compute.pyx":2724
 * 
 *         for argument in arguments:
 *             if not isinstance(argument, Expression):             # <<<<<<<<<<<<<<
 *                 # Attempt to help convert this to an expression
 *                 try:
*/
    __pyx_t_4 = __Pyx_TypeCheck(__pyx_v_argument, __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression); 
    __pyx_t_5 = (!__pyx_t_4);
    if (__pyx_t_5) {

      /* "pyarrow/_compute.pyx":2726
 *             if not isinstance(argument, Expression):
 *                 # Attempt to help convert this to an expression
 *                 try:             # <<<<<<<<<<<<<<
 *                     argument = Expression._scalar(argument)
 *                 except ArrowInvalid:
*/
      {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
        __Pyx_XGOTREF(__pyx_t_6);
        __Pyx_XGOTREF(__pyx_t_7);
        __Pyx_XGOTREF(__pyx_t_8);
        /*try:*/ {

          /* "pyarrow/_compute.pyx":2727
 *                 # Attempt to help convert this to an expression
 *                 try:
 *                     argument = Expression._scalar(argument)             # <<<<<<<<<<<<<<
 *                 except ArrowInvalid:
 *                     raise TypeError(
*/
          __pyx_t_9 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
          __Pyx_INCREF(__pyx_t_9);
          __pyx_t_10 = 0;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_argument};
            __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_scalar_2, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2727, __pyx_L6_error)
            __Pyx_GOTREF(__pyx_t_3);
          }
          __Pyx_DECREF_SET(__pyx_v_argument, __pyx_t_3);
          __pyx_t_3 = 0;

          /* "pyarrow/_compute.pyx":2726
 *             if not isinstance(argument, Expression):
 *                 # Attempt to help convert this to an expression
 *                 try:             # <<<<<<<<<<<<<<
 *                     argument = Expression._scalar(argument)
 *                 except ArrowInvalid:
*/
        }
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        goto __pyx_L13_try_end;
        __pyx_L6_error:;
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

        /* "pyarrow/_compute.pyx":2728
 *                 try:
 *                     argument = Expression._scalar(argument)
 *                 except ArrowInvalid:             # <<<<<<<<<<<<<<
 *                     raise TypeError(
 *                         "only other expressions allowed as arguments")
*/
        __Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_9, &__pyx_t_11);
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_ArrowInvalid); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2728, __pyx_L8_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_3, __pyx_t_12);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_ErrRestore(__pyx_t_3, __pyx_t_9, __pyx_t_11);
        __pyx_t_3 = 0; __pyx_t_9 = 0; __pyx_t_11 = 0;
        if (__pyx_t_13) {
          __Pyx_AddTraceback("pyarrow._compute.Expression._call", __pyx_clineno, __pyx_lineno, __pyx_filename);
          if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_9, &__pyx_t_3) < 0) __PYX_ERR(0, 2728, __pyx_L8_except_error)
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_3);

          /* "pyarrow/_compute.pyx":2729
 *                     argument = Expression._scalar(argument)
 *                 except ArrowInvalid:
 *                     raise TypeError(             # <<<<<<<<<<<<<<
 *                         "only other expressions allowed as arguments")
 *             c_arguments.push_back((<Expression> argument).expr)
*/
          __pyx_t_14 = NULL;
          __pyx_t_10 = 1;
          {
            PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_mstate_global->__pyx_kp_u_only_other_expressions_allowed_a};
            __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2729, __pyx_L8_except_error)
            __Pyx_GOTREF(__pyx_t_12);
          }
          __Pyx_Raise(__pyx_t_12, 0, 0, 0);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __PYX_ERR(0, 2729, __pyx_L8_except_error)
        }
        goto __pyx_L8_except_error;

        /* "pyarrow/_compute.pyx":2726
 *             if not isinstance(argument, Expression):
 *                 # Attempt to help convert this to an expression
 *                 try:             # <<<<<<<<<<<<<<
 *                     argument = Expression._scalar(argument)
 *                 except ArrowInvalid:
*/
        __pyx_L8_except_error:;
        __Pyx_XGIVEREF(__pyx_t_6);
        __Pyx_XGIVEREF(__pyx_t_7);
        __Pyx_XGIVEREF(__pyx_t_8);
        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
        goto __pyx_L1_error;
        __pyx_L13_try_end:;
      }

      /* "pyarrow/_compute.pyx":2724
 * 
 *         for argument in arguments:
 *             if not isinstance(argument, Expression):             # <<<<<<<<<<<<<<
 *                 # Attempt to help convert this to an expression
 *                 try:
*/
    }

    /* "pyarrow/_compute.pyx":2731
 *                     raise TypeError(
 *                         "only other expressions allowed as arguments")
 *             c_arguments.push_back((<Expression> argument).expr)             # <<<<<<<<<<<<<<
 * 
 *         if options is not None:
*/
    try {
      __pyx_v_c_arguments.push_back(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_argument)->expr);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 2731, __pyx_L1_error)
    }

    /* "pyarrow/_compute.pyx":2723
 *             shared_ptr[CFunctionOptions] c_options
 * 
 *         for argument in arguments:             # <<<<<<<<<<<<<<
 *             if not isinstance(argument, Expression):
 *                 # Attempt to help convert this to an expression
*/
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2733
 *             c_arguments.push_back((<Expression> argument).expr)
 * 
 *         if options is not None:             # <<<<<<<<<<<<<<
 *             c_options = options.unwrap()
 * 
*/
  __pyx_t_5 = (((PyObject *)__pyx_v_options) != Py_None);
  if (__pyx_t_5) {

    /* "pyarrow/_compute.pyx":2734
 * 
 *         if options is not None:
 *             c_options = options.unwrap()             # <<<<<<<<<<<<<<
 * 
 *         return Expression.wrap(CMakeCallExpression(
*/
    __pyx_t_15 = __pyx_f_7pyarrow_8_compute_15FunctionOptions_unwrap(__pyx_v_options); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2734, __pyx_L1_error)
    __pyx_v_c_options = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_15);

    /* "pyarrow/_compute.pyx":2733
 *             c_arguments.push_back((<Expression> argument).expr)
 * 
 *         if options is not None:             # <<<<<<<<<<<<<<
 *             c_options = options.unwrap()
 * 
*/
  }

  /* "pyarrow/_compute.pyx":2736
 *             c_options = options.unwrap()
 * 
 *         return Expression.wrap(CMakeCallExpression(             # <<<<<<<<<<<<<<
 *             tobytes(function_name), move(c_arguments), c_options))
 * 
*/
  __Pyx_XDECREF(__pyx_r);

  /* "pyarrow/_compute.pyx":2737
 * 
 *         return Expression.wrap(CMakeCallExpression(
 *             tobytes(function_name), move(c_arguments), c_options))             # <<<<<<<<<<<<<<
 * 
 *     def __richcmp__(self, other, int op):
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
    __pyx_t_10 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_function_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2737, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_16 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2737, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2736
 *             c_options = options.unwrap()
 * 
 *         return Expression.wrap(CMakeCallExpression(             # <<<<<<<<<<<<<<
 *             tobytes(function_name), move(c_arguments), c_options))
 * 
*/
  __pyx_t_1 = __pyx_f_7pyarrow_8_compute_10Expression_wrap(arrow::compute::call(__PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_16), cython_std::move<std::vector<arrow::compute::Expression> >(__pyx_v_c_arguments), __pyx_v_c_options)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2717
 *         return (<Expression> Expression._scalar(expr))
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _call(str function_name, list arguments, FunctionOptions options=None):
 *         cdef:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pyarrow._compute.Expression._call", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_argument);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2739
 *             tobytes(function_name), move(c_arguments), c_options))
 * 
 *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call({
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_19__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_19__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_18__richcmp__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), ((PyObject *)__pyx_v_other), ((int)__pyx_v_op));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_18__richcmp__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__richcmp__", 0);
  __Pyx_INCREF(__pyx_v_other);

  /* "pyarrow/_compute.pyx":2740
 * 
 *     def __richcmp__(self, other, int op):
 *         other = Expression._expr_or_scalar(other)             # <<<<<<<<<<<<<<
 *         return Expression._call({
 *             Py_EQ: "equal",
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7pyarrow_8_compute_10Expression__expr_or_scalar(__pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2741
 *     def __richcmp__(self, other, int op):
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call({             # <<<<<<<<<<<<<<
 *             Py_EQ: "equal",
 *             Py_NE: "not_equal",
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_2);

  /* "pyarrow/_compute.pyx":2742
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call({
 *             Py_EQ: "equal",             # <<<<<<<<<<<<<<
 *             Py_NE: "not_equal",
 *             Py_GT: "greater",
*/
  __pyx_t_3 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyLong_From_int(Py_EQ); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_equal) < (0)) __PYX_ERR(0, 2742, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2743
 *         return Expression._call({
 *             Py_EQ: "equal",
 *             Py_NE: "not_equal",             # <<<<<<<<<<<<<<
 *             Py_GT: "greater",
 *             Py_GE: "greater_equal",
*/
  __pyx_t_4 = __Pyx_PyLong_From_int(Py_NE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_not_equal) < (0)) __PYX_ERR(0, 2742, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2744
 *             Py_EQ: "equal",
 *             Py_NE: "not_equal",
 *             Py_GT: "greater",             # <<<<<<<<<<<<<<
 *             Py_GE: "greater_equal",
 *             Py_LT: "less",
*/
  __pyx_t_4 = __Pyx_PyLong_From_int(Py_GT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_greater) < (0)) __PYX_ERR(0, 2742, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2745
 *             Py_NE: "not_equal",
 *             Py_GT: "greater",
 *             Py_GE: "greater_equal",             # <<<<<<<<<<<<<<
 *             Py_LT: "less",
 *             Py_LE: "less_equal",
*/
  __pyx_t_4 = __Pyx_PyLong_From_int(Py_GE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_greater_equal) < (0)) __PYX_ERR(0, 2742, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2746
 *             Py_GT: "greater",
 *             Py_GE: "greater_equal",
 *             Py_LT: "less",             # <<<<<<<<<<<<<<
 *             Py_LE: "less_equal",
 *         }[op], [self, other])
*/
  __pyx_t_4 = __Pyx_PyLong_From_int(Py_LT); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_less) < (0)) __PYX_ERR(0, 2742, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2747
 *             Py_GE: "greater_equal",
 *             Py_LT: "less",
 *             Py_LE: "less_equal",             # <<<<<<<<<<<<<<
 *         }[op], [self, other])
 * 
*/
  __pyx_t_4 = __Pyx_PyLong_From_int(Py_LE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_less_equal) < (0)) __PYX_ERR(0, 2742, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2748
 *             Py_LT: "less",
 *             Py_LE: "less_equal",
 *         }[op], [self, other])             # <<<<<<<<<<<<<<
 * 
 *     def __bool__(self):
*/
  __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_op); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2748, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_other);
  __Pyx_GIVEREF(__pyx_v_other);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 1, __pyx_v_other) != (0)) __PYX_ERR(0, 2748, __pyx_L1_error);
  __pyx_t_6 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_t_5, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2739
 *             tobytes(function_name), move(c_arguments), c_options))
 * 
 *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call({
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_other);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2750
 *         }[op], [self, other])
 * 
 *     def __bool__(self):             # <<<<<<<<<<<<<<
 *         raise ValueError(
 *             "An Expression cannot be evaluated to python True or False. "
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_10Expression_21__bool__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_10Expression_21__bool__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__bool__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_20__bool__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_10Expression_20__bool__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  size_t __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__bool__", 0);

  /* "pyarrow/_compute.pyx":2751
 * 
 *     def __bool__(self):
 *         raise ValueError(             # <<<<<<<<<<<<<<
 *             "An Expression cannot be evaluated to python True or False. "
 *             "If you are using the 'and', 'or' or 'not' operators, use '&', "
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_An_Expression_cannot_be_evaluate};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2751, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(0, 2751, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2750
 *         }[op], [self, other])
 * 
 *     def __bool__(self):             # <<<<<<<<<<<<<<
 *         raise ValueError(
 *             "An Expression cannot be evaluated to python True or False. "
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__bool__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2757
 *         )
 * 
 *     def __invert__(self):             # <<<<<<<<<<<<<<
 *         return Expression._call("invert", [self])
 * 
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_23__invert__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_23__invert__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__invert__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_22__invert__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_22__invert__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__invert__", 0);

  /* "pyarrow/_compute.pyx":2758
 * 
 *     def __invert__(self):
 *         return Expression._call("invert", [self])             # <<<<<<<<<<<<<<
 * 
 *     def __and__(Expression self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2758, __pyx_L1_error);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_invert, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2758, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2757
 *         )
 * 
 *     def __invert__(self):             # <<<<<<<<<<<<<<
 *         return Expression._call("invert", [self])
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__invert__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2760
 *         return Expression._call("invert", [self])
 * 
 *     def __and__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("and_kleene", [self, other])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_25__and__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_25__and__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__and__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_24__and__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_24__and__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__and__", 0);
  __Pyx_INCREF(__pyx_v_other);

  /* "pyarrow/_compute.pyx":2761
 * 
 *     def __and__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)             # <<<<<<<<<<<<<<
 *         return Expression._call("and_kleene", [self, other])
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7pyarrow_8_compute_10Expression__expr_or_scalar(__pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2762
 *     def __and__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("and_kleene", [self, other])             # <<<<<<<<<<<<<<
 * 
 *     def __or__(Expression self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2762, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_other);
  __Pyx_GIVEREF(__pyx_v_other);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_v_other) != (0)) __PYX_ERR(0, 2762, __pyx_L1_error);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_and_kleene, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2762, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2760
 *         return Expression._call("invert", [self])
 * 
 *     def __and__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("and_kleene", [self, other])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__and__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_other);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2764
 *         return Expression._call("and_kleene", [self, other])
 * 
 *     def __or__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("or_kleene", [self, other])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_27__or__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_27__or__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__or__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_26__or__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_26__or__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__or__", 0);
  __Pyx_INCREF(__pyx_v_other);

  /* "pyarrow/_compute.pyx":2765
 * 
 *     def __or__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)             # <<<<<<<<<<<<<<
 *         return Expression._call("or_kleene", [self, other])
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7pyarrow_8_compute_10Expression__expr_or_scalar(__pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2766
 *     def __or__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("or_kleene", [self, other])             # <<<<<<<<<<<<<<
 * 
 *     def __add__(Expression self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2766, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_other);
  __Pyx_GIVEREF(__pyx_v_other);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_v_other) != (0)) __PYX_ERR(0, 2766, __pyx_L1_error);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_or_kleene, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2766, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2764
 *         return Expression._call("and_kleene", [self, other])
 * 
 *     def __or__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("or_kleene", [self, other])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__or__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_other);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2768
 *         return Expression._call("or_kleene", [self, other])
 * 
 *     def __add__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("add_checked", [self, other])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_29__add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_29__add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__add__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_28__add__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_28__add__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__add__", 0);
  __Pyx_INCREF(__pyx_v_other);

  /* "pyarrow/_compute.pyx":2769
 * 
 *     def __add__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)             # <<<<<<<<<<<<<<
 *         return Expression._call("add_checked", [self, other])
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7pyarrow_8_compute_10Expression__expr_or_scalar(__pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2770
 *     def __add__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("add_checked", [self, other])             # <<<<<<<<<<<<<<
 * 
 *     def __mul__(Expression self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2770, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_other);
  __Pyx_GIVEREF(__pyx_v_other);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_v_other) != (0)) __PYX_ERR(0, 2770, __pyx_L1_error);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_add_checked, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2768
 *         return Expression._call("or_kleene", [self, other])
 * 
 *     def __add__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("add_checked", [self, other])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__add__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_other);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2772
 *         return Expression._call("add_checked", [self, other])
 * 
 *     def __mul__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("multiply_checked", [self, other])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_31__mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_31__mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__mul__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_30__mul__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_30__mul__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__mul__", 0);
  __Pyx_INCREF(__pyx_v_other);

  /* "pyarrow/_compute.pyx":2773
 * 
 *     def __mul__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)             # <<<<<<<<<<<<<<
 *         return Expression._call("multiply_checked", [self, other])
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7pyarrow_8_compute_10Expression__expr_or_scalar(__pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2774
 *     def __mul__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("multiply_checked", [self, other])             # <<<<<<<<<<<<<<
 * 
 *     def __sub__(Expression self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2774, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_other);
  __Pyx_GIVEREF(__pyx_v_other);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_v_other) != (0)) __PYX_ERR(0, 2774, __pyx_L1_error);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_multiply_checked, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2772
 *         return Expression._call("add_checked", [self, other])
 * 
 *     def __mul__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("multiply_checked", [self, other])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__mul__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_other);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2776
 *         return Expression._call("multiply_checked", [self, other])
 * 
 *     def __sub__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("subtract_checked", [self, other])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_33__sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_33__sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__sub__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_32__sub__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_32__sub__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__sub__", 0);
  __Pyx_INCREF(__pyx_v_other);

  /* "pyarrow/_compute.pyx":2777
 * 
 *     def __sub__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)             # <<<<<<<<<<<<<<
 *         return Expression._call("subtract_checked", [self, other])
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7pyarrow_8_compute_10Expression__expr_or_scalar(__pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2778
 *     def __sub__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("subtract_checked", [self, other])             # <<<<<<<<<<<<<<
 * 
 *     def __truediv__(Expression self, other):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2778, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_other);
  __Pyx_GIVEREF(__pyx_v_other);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_v_other) != (0)) __PYX_ERR(0, 2778, __pyx_L1_error);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_subtract_checked, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2778, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2776
 *         return Expression._call("multiply_checked", [self, other])
 * 
 *     def __sub__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("subtract_checked", [self, other])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__sub__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_other);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2780
 *         return Expression._call("subtract_checked", [self, other])
 * 
 *     def __truediv__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("divide_checked", [self, other])
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_35__truediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_35__truediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__truediv__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_34__truediv__(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), ((PyObject *)__pyx_v_other));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_34__truediv__(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_other) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__truediv__", 0);
  __Pyx_INCREF(__pyx_v_other);

  /* "pyarrow/_compute.pyx":2781
 * 
 *     def __truediv__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)             # <<<<<<<<<<<<<<
 *         return Expression._call("divide_checked", [self, other])
 * 
*/
  __pyx_t_1 = ((PyObject *)__pyx_f_7pyarrow_8_compute_10Expression__expr_or_scalar(__pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2782
 *     def __truediv__(Expression self, other):
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("divide_checked", [self, other])             # <<<<<<<<<<<<<<
 * 
 *     def is_valid(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2782, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_other);
  __Pyx_GIVEREF(__pyx_v_other);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_v_other) != (0)) __PYX_ERR(0, 2782, __pyx_L1_error);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_divide_checked, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2782, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2780
 *         return Expression._call("subtract_checked", [self, other])
 * 
 *     def __truediv__(Expression self, other):             # <<<<<<<<<<<<<<
 *         other = Expression._expr_or_scalar(other)
 *         return Expression._call("divide_checked", [self, other])
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Expression.__truediv__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_other);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2784
 *         return Expression._call("divide_checked", [self, other])
 * 
 *     def is_valid(self):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is not-null (valid).
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_37is_valid(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_36is_valid, "Expression.is_valid(self)\n\nCheck whether the expression is not-null (valid).\n\nThis creates a new expression equivalent to calling the\n`is_valid` compute function on this expression.\n\nReturns\n-------\nis_valid : Expression");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_37is_valid = {"is_valid", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_37is_valid, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_36is_valid};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_37is_valid(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_valid (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("is_valid", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("is_valid", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_36is_valid(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_36is_valid(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_valid", 0);

  /* "pyarrow/_compute.pyx":2795
 *         is_valid : Expression
 *         """
 *         return Expression._call("is_valid", [self])             # <<<<<<<<<<<<<<
 * 
 *     def is_null(self, bint nan_is_null=False):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2795, __pyx_L1_error);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_is_valid, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2784
 *         return Expression._call("divide_checked", [self, other])
 * 
 *     def is_valid(self):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is not-null (valid).
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Expression.is_valid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2797
 *         return Expression._call("is_valid", [self])
 * 
 *     def is_null(self, bint nan_is_null=False):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is null.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_39is_null(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_38is_null, "Expression.is_null(self, bool nan_is_null=False)\n\nCheck whether the expression is null.\n\nThis creates a new expression equivalent to calling the\n`is_null` compute function on this expression.\n\nParameters\n----------\nnan_is_null : boolean, default False\n    Whether floating-point NaNs are considered null.\n\nReturns\n-------\nis_null : Expression");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_39is_null = {"is_null", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_39is_null, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_38is_null};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_39is_null(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  int __pyx_v_nan_is_null;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_null (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_nan_is_null,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2797, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2797, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "is_null", 0) < (0)) __PYX_ERR(0, 2797, __pyx_L3_error)
    } else {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2797, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_nan_is_null = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_nan_is_null == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2797, __pyx_L3_error)
    } else {
      __pyx_v_nan_is_null = ((int)0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_null", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2797, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Expression.is_null", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_38is_null(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), __pyx_v_nan_is_null);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_38is_null(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, int __pyx_v_nan_is_null) {
  PyObject *__pyx_v_options = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_null", 0);

  /* "pyarrow/_compute.pyx":2813
 *         is_null : Expression
 *         """
 *         options = NullOptions(nan_is_null=nan_is_null)             # <<<<<<<<<<<<<<
 *         return Expression._call("is_null", [self], options)
 * 
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_NullOptions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_nan_is_null); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_2, NULL};
    __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2813, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_nan_is_null, __pyx_t_4, __pyx_t_6, __pyx_callargs+1, 0) < (0)) __PYX_ERR(0, 2813, __pyx_L1_error)
    __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2813, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_v_options = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2814
 *         """
 *         options = NullOptions(nan_is_null=nan_is_null)
 *         return Expression._call("is_null", [self], options)             # <<<<<<<<<<<<<<
 * 
 *     def is_nan(self):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2814, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2814, __pyx_L1_error);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_mstate_global->__pyx_n_u_is_null, __pyx_t_6, __pyx_v_options};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2814, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2797
 *         return Expression._call("is_valid", [self])
 * 
 *     def is_null(self, bint nan_is_null=False):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is null.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pyarrow._compute.Expression.is_null", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_options);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2816
 *         return Expression._call("is_null", [self], options)
 * 
 *     def is_nan(self):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is NaN.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_41is_nan(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_40is_nan, "Expression.is_nan(self)\n\nCheck whether the expression is NaN.\n\nThis creates a new expression equivalent to calling the\n`is_nan` compute function on this expression.\n\nReturns\n-------\nis_nan : Expression");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_41is_nan = {"is_nan", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_41is_nan, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_40is_nan};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_41is_nan(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nan (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("is_nan", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("is_nan", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_40is_nan(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_40is_nan(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nan", 0);

  /* "pyarrow/_compute.pyx":2827
 *         is_nan : Expression
 *         """
 *         return Expression._call("is_nan", [self])             # <<<<<<<<<<<<<<
 * 
 *     def cast(self, type=None, safe=None, options=None):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2827, __pyx_L1_error);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_is_nan, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2827, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2816
 *         return Expression._call("is_null", [self], options)
 * 
 *     def is_nan(self):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is NaN.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.Expression.is_nan", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2829
 *         return Expression._call("is_nan", [self])
 * 
 *     def cast(self, type=None, safe=None, options=None):             # <<<<<<<<<<<<<<
 *         """
 *         Explicitly set or change the expression's data type.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_43cast(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_42cast, "Expression.cast(self, type=None, safe=None, options=None)\n\nExplicitly set or change the expression's data type.\n\nThis creates a new expression equivalent to calling the\n`cast` compute function on this expression.\n\nParameters\n----------\ntype : DataType, default None\n    Type to cast array to.\nsafe : boolean, default True\n    Whether to check for conversion errors such as overflow.\noptions : CastOptions, default None\n    Additional checks pass by CastOptions\n\nReturns\n-------\ncast : Expression");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_43cast = {"cast", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_43cast, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_42cast};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_43cast(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_type = 0;
  PyObject *__pyx_v_safe = 0;
  PyObject *__pyx_v_options = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cast (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_type,&__pyx_mstate_global->__pyx_n_u_safe,&__pyx_mstate_global->__pyx_n_u_options,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2829, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2829, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2829, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2829, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "cast", 0) < (0)) __PYX_ERR(0, 2829, __pyx_L3_error)
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 2829, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2829, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2829, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[0]) values[0] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_type = values[0];
    __pyx_v_safe = values[1];
    __pyx_v_options = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("cast", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 2829, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Expression.cast", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_42cast(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), __pyx_v_type, __pyx_v_safe, __pyx_v_options);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_42cast(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_type, PyObject *__pyx_v_safe, PyObject *__pyx_v_options) {
  PyObject *__pyx_v_safe_vars_passed = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  size_t __pyx_t_5;
  struct __pyx_opt_args_7pyarrow_3lib_ensure_type __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cast", 0);
  __Pyx_INCREF(__pyx_v_type);
  __Pyx_INCREF(__pyx_v_options);

  /* "pyarrow/_compute.pyx":2849
 *         cast : Expression
 *         """
 *         safe_vars_passed = (safe is not None) or (type is not None)             # <<<<<<<<<<<<<<
 * 
 *         if safe_vars_passed and (options is not None):
*/
  __pyx_t_2 = (__pyx_v_safe != Py_None);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_type != Py_None);
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_t_3;
  __pyx_t_3 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_v_safe_vars_passed = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":2851
 *         safe_vars_passed = (safe is not None) or (type is not None)
 * 
 *         if safe_vars_passed and (options is not None):             # <<<<<<<<<<<<<<
 *             raise ValueError("Must either pass values for 'type' and 'safe' or pass a "
 *                              "value for 'options'")
*/
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_safe_vars_passed); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 2851, __pyx_L1_error)
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_4 = (__pyx_v_options != Py_None);
  __pyx_t_2 = __pyx_t_4;
  __pyx_L6_bool_binop_done:;
  if (unlikely(__pyx_t_2)) {

    /* "pyarrow/_compute.pyx":2852
 * 
 *         if safe_vars_passed and (options is not None):
 *             raise ValueError("Must either pass values for 'type' and 'safe' or pass a "             # <<<<<<<<<<<<<<
 *                              "value for 'options'")
 * 
*/
    __pyx_t_3 = NULL;
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Must_either_pass_values_for_type};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2852, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 2852, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":2851
 *         safe_vars_passed = (safe is not None) or (type is not None)
 * 
 *         if safe_vars_passed and (options is not None):             # <<<<<<<<<<<<<<
 *             raise ValueError("Must either pass values for 'type' and 'safe' or pass a "
 *                              "value for 'options'")
*/
  }

  /* "pyarrow/_compute.pyx":2855
 *                              "value for 'options'")
 * 
 *         if options is None:             # <<<<<<<<<<<<<<
 *             type = ensure_type(type, allow_none=False)
 *             if safe is False:
*/
  __pyx_t_2 = (__pyx_v_options == Py_None);
  if (__pyx_t_2) {

    /* "pyarrow/_compute.pyx":2856
 * 
 *         if options is None:
 *             type = ensure_type(type, allow_none=False)             # <<<<<<<<<<<<<<
 *             if safe is False:
 *                 options = CastOptions.unsafe(type)
*/
    __pyx_t_6.__pyx_n = 1;
    __pyx_t_6.allow_none = 0;
    __pyx_t_1 = ((PyObject *)__pyx_f_7pyarrow_3lib_ensure_type(__pyx_v_type, 0, &__pyx_t_6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_type, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "pyarrow/_compute.pyx":2857
 *         if options is None:
 *             type = ensure_type(type, allow_none=False)
 *             if safe is False:             # <<<<<<<<<<<<<<
 *                 options = CastOptions.unsafe(type)
 *             else:
*/
    __pyx_t_2 = (__pyx_v_safe == Py_False);
    if (__pyx_t_2) {

      /* "pyarrow/_compute.pyx":2858
 *             type = ensure_type(type, allow_none=False)
 *             if safe is False:
 *                 options = CastOptions.unsafe(type)             # <<<<<<<<<<<<<<
 *             else:
 *                 options = CastOptions.safe(type)
*/
      __pyx_t_3 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_CastOptions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2858, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_unsafe); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2858, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8);
        assert(__pyx_t_3);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_type};
        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2858, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF_SET(__pyx_v_options, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "pyarrow/_compute.pyx":2857
 *         if options is None:
 *             type = ensure_type(type, allow_none=False)
 *             if safe is False:             # <<<<<<<<<<<<<<
 *                 options = CastOptions.unsafe(type)
 *             else:
*/
      goto __pyx_L9;
    }

    /* "pyarrow/_compute.pyx":2860
 *                 options = CastOptions.unsafe(type)
 *             else:
 *                 options = CastOptions.safe(type)             # <<<<<<<<<<<<<<
 *         return Expression._call("cast", [self], options)
 * 
*/
    /*else*/ {
      __pyx_t_8 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_CastOptions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2860, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_safe); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2860, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
        assert(__pyx_t_8);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_type};
        __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF_SET(__pyx_v_options, __pyx_t_1);
      __pyx_t_1 = 0;
    }
    __pyx_L9:;

    /* "pyarrow/_compute.pyx":2855
 *                              "value for 'options'")
 * 
 *         if options is None:             # <<<<<<<<<<<<<<
 *             type = ensure_type(type, allow_none=False)
 *             if safe is False:
*/
  }

  /* "pyarrow/_compute.pyx":2861
 *             else:
 *                 options = CastOptions.safe(type)
 *         return Expression._call("cast", [self], options)             # <<<<<<<<<<<<<<
 * 
 *     def isin(self, values):
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_7);
  __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2861, __pyx_L1_error);
  __pyx_t_5 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_7, __pyx_mstate_global->__pyx_n_u_cast, __pyx_t_8, __pyx_v_options};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_5, (4-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2829
 *         return Expression._call("is_nan", [self])
 * 
 *     def cast(self, type=None, safe=None, options=None):             # <<<<<<<<<<<<<<
 *         """
 *         Explicitly set or change the expression's data type.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pyarrow._compute.Expression.cast", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_safe_vars_passed);
  __Pyx_XDECREF(__pyx_v_type);
  __Pyx_XDECREF(__pyx_v_options);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2863
 *         return Expression._call("cast", [self], options)
 * 
 *     def isin(self, values):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is contained in values.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_45isin(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_44isin, "Expression.isin(self, values)\n\nCheck whether the expression is contained in values.\n\nThis creates a new expression equivalent to calling the\n`is_in` compute function on this expression.\n\nParameters\n----------\nvalues : Array or iterable\n    The values to check for.\n\nReturns\n-------\nisin : Expression\n    A new expression that, when evaluated, checks whether\n    this expression's value is contained in `values`.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_45isin = {"isin", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_45isin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_44isin};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_45isin(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_values = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("isin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_values,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2863, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2863, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "isin", 0) < (0)) __PYX_ERR(0, 2863, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("isin", 1, 1, 1, i); __PYX_ERR(0, 2863, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2863, __pyx_L3_error)
    }
    __pyx_v_values = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("isin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2863, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Expression.isin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_44isin(((struct __pyx_obj_7pyarrow_8_compute_Expression *)__pyx_v_self), __pyx_v_values);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_44isin(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_self, PyObject *__pyx_v_values) {
  PyObject *__pyx_v_options = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  size_t __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("isin", 0);
  __Pyx_INCREF(__pyx_v_values);

  /* "pyarrow/_compute.pyx":2881
 *             this expression's value is contained in `values`.
 *         """
 *         if not isinstance(values, Array):             # <<<<<<<<<<<<<<
 *             values = lib.array(values)
 * 
*/
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_values, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Array); 
  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {

    /* "pyarrow/_compute.pyx":2882
 *         """
 *         if not isinstance(values, Array):
 *             values = lib.array(values)             # <<<<<<<<<<<<<<
 * 
 *         options = SetLookupOptions(values)
*/
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_lib); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_array); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
      __pyx_t_7 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_values};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2882, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF_SET(__pyx_v_values, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "pyarrow/_compute.pyx":2881
 *             this expression's value is contained in `values`.
 *         """
 *         if not isinstance(values, Array):             # <<<<<<<<<<<<<<
 *             values = lib.array(values)
 * 
*/
  }

  /* "pyarrow/_compute.pyx":2884
 *             values = lib.array(values)
 * 
 *         options = SetLookupOptions(values)             # <<<<<<<<<<<<<<
 *         return Expression._call("is_in", [self], options)
 * 
*/
  __pyx_t_6 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SetLookupOptions); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2884, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_6);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_7 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_values};
    __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2884, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_v_options = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":2885
 * 
 *         options = SetLookupOptions(values)
 *         return Expression._call("is_in", [self], options)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_self)) != (0)) __PYX_ERR(0, 2885, __pyx_L1_error);
  __pyx_t_7 = 0;
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_mstate_global->__pyx_n_u_is_in, __pyx_t_6, __pyx_v_options};
    __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_call_2, __pyx_callargs+__pyx_t_7, (4-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2885, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
  }
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2863
 *         return Expression._call("cast", [self], options)
 * 
 *     def isin(self, values):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is contained in values.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pyarrow._compute.Expression.isin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_options);
  __Pyx_XDECREF(__pyx_v_values);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2887
 *         return Expression._call("is_in", [self], options)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _field(name_or_idx not None):
 *         cdef:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_47_field(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_46_field, "Expression._field(name_or_idx)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_47_field = {"_field", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_47_field, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_46_field};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_47_field(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_name_or_idx = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_field (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name_or_idx,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2887, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2887, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_field", 0) < (0)) __PYX_ERR(0, 2887, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_field", 1, 1, 1, i); __PYX_ERR(0, 2887, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2887, __pyx_L3_error)
    }
    __pyx_v_name_or_idx = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_field", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2887, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Expression._field", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(((PyObject *)__pyx_v_name_or_idx) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "name_or_idx"); __PYX_ERR(0, 2888, __pyx_L1_error)
  }
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_46_field(__pyx_v_name_or_idx);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_46_field(PyObject *__pyx_v_name_or_idx) {
   arrow::FieldRef __pyx_v_c_field;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  std::string __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_field", 0);

  /* "pyarrow/_compute.pyx":2892
 *             CFieldRef c_field
 * 
 *         if isinstance(name_or_idx, int):             # <<<<<<<<<<<<<<
 *             return Expression.wrap(CMakeFieldExpressionByIndex(name_or_idx))
 *         else:
*/
  __pyx_t_1 = PyLong_Check(__pyx_v_name_or_idx); 
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2893
 * 
 *         if isinstance(name_or_idx, int):
 *             return Expression.wrap(CMakeFieldExpressionByIndex(name_or_idx))             # <<<<<<<<<<<<<<
 *         else:
 *             c_field = CFieldRef(<c_string> tobytes(name_or_idx))
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyLong_As_int(__pyx_v_name_or_idx); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2893, __pyx_L1_error)
    __pyx_t_3 = __pyx_f_7pyarrow_8_compute_10Expression_wrap(arrow::compute::field_ref(__pyx_t_2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2893, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":2892
 *             CFieldRef c_field
 * 
 *         if isinstance(name_or_idx, int):             # <<<<<<<<<<<<<<
 *             return Expression.wrap(CMakeFieldExpressionByIndex(name_or_idx))
 *         else:
*/
  }

  /* "pyarrow/_compute.pyx":2895
 *             return Expression.wrap(CMakeFieldExpressionByIndex(name_or_idx))
 *         else:
 *             c_field = CFieldRef(<c_string> tobytes(name_or_idx))             # <<<<<<<<<<<<<<
 *             return Expression.wrap(CMakeFieldExpression(c_field))
 * 
*/
  /*else*/ {
    __pyx_t_4 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2895, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_4);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_name_or_idx};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2895, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __pyx_t_7 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2895, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_c_field =  arrow::FieldRef(((std::string)__pyx_t_7));

    /* "pyarrow/_compute.pyx":2896
 *         else:
 *             c_field = CFieldRef(<c_string> tobytes(name_or_idx))
 *             return Expression.wrap(CMakeFieldExpression(c_field))             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __pyx_f_7pyarrow_8_compute_10Expression_wrap(arrow::compute::field_ref(__pyx_v_c_field)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2896, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "pyarrow/_compute.pyx":2887
 *         return Expression._call("is_in", [self], options)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _field(name_or_idx not None):
 *         cdef:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pyarrow._compute.Expression._field", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2898
 *             return Expression.wrap(CMakeFieldExpression(c_field))
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _nested_field(tuple names not None):
 *         cdef:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_49_nested_field(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_48_nested_field, "Expression._nested_field(tuple names)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_49_nested_field = {"_nested_field", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_49_nested_field, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_48_nested_field};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_49_nested_field(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_names = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_nested_field (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_names,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2898, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2898, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_nested_field", 0) < (0)) __PYX_ERR(0, 2898, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_nested_field", 1, 1, 1, i); __PYX_ERR(0, 2898, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2898, __pyx_L3_error)
    }
    __pyx_v_names = ((PyObject*)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_nested_field", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2898, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Expression._nested_field", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_names), (&PyTuple_Type), 0, "names", 1))) __PYX_ERR(0, 2899, __pyx_L1_error)
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_48_nested_field(__pyx_v_names);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_48_nested_field(PyObject *__pyx_v_names) {
  std::vector< arrow::FieldRef>  __pyx_v_nested;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  std::string __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_nested_field", 0);

  /* "pyarrow/_compute.pyx":2903
 *             vector[CFieldRef] nested
 * 
 *         if len(names) == 0:             # <<<<<<<<<<<<<<
 *             raise ValueError("nested field reference should be non-empty")
 *         nested.reserve(len(names))
*/
  __pyx_t_1 = __Pyx_PyTuple_GET_SIZE(__pyx_v_names); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2903, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_1 == 0);
  if (unlikely(__pyx_t_2)) {

    /* "pyarrow/_compute.pyx":2904
 * 
 *         if len(names) == 0:
 *             raise ValueError("nested field reference should be non-empty")             # <<<<<<<<<<<<<<
 *         nested.reserve(len(names))
 *         for name in names:
*/
    __pyx_t_4 = NULL;
    __pyx_t_5 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_nested_field_reference_should_be};
      __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2904, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 2904, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":2903
 *             vector[CFieldRef] nested
 * 
 *         if len(names) == 0:             # <<<<<<<<<<<<<<
 *             raise ValueError("nested field reference should be non-empty")
 *         nested.reserve(len(names))
*/
  }

  /* "pyarrow/_compute.pyx":2905
 *         if len(names) == 0:
 *             raise ValueError("nested field reference should be non-empty")
 *         nested.reserve(len(names))             # <<<<<<<<<<<<<<
 *         for name in names:
 *             if isinstance(name, int):
*/
  __pyx_t_1 = __Pyx_PyTuple_GET_SIZE(__pyx_v_names); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2905, __pyx_L1_error)
  try {
    __pyx_v_nested.reserve(__pyx_t_1);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 2905, __pyx_L1_error)
  }

  /* "pyarrow/_compute.pyx":2906
 *             raise ValueError("nested field reference should be non-empty")
 *         nested.reserve(len(names))
 *         for name in names:             # <<<<<<<<<<<<<<
 *             if isinstance(name, int):
 *                 nested.push_back(CFieldRef(<int>name))
*/
  __pyx_t_3 = __pyx_v_names; __Pyx_INCREF(__pyx_t_3);
  __pyx_t_1 = 0;
  for (;;) {
    {
      Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3);
      #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 2906, __pyx_L1_error)
      #endif
      if (__pyx_t_1 >= __pyx_temp) break;
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1));
    #else
    __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_1);
    #endif
    ++__pyx_t_1;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2906, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "pyarrow/_compute.pyx":2907
 *         nested.reserve(len(names))
 *         for name in names:
 *             if isinstance(name, int):             # <<<<<<<<<<<<<<
 *                 nested.push_back(CFieldRef(<int>name))
 *             else:
*/
    __pyx_t_2 = PyLong_Check(__pyx_v_name); 
    if (__pyx_t_2) {

      /* "pyarrow/_compute.pyx":2908
 *         for name in names:
 *             if isinstance(name, int):
 *                 nested.push_back(CFieldRef(<int>name))             # <<<<<<<<<<<<<<
 *             else:
 *                 nested.push_back(CFieldRef(<c_string> tobytes(name)))
*/
      __pyx_t_6 = __Pyx_PyLong_As_int(__pyx_v_name); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2908, __pyx_L1_error)
      try {
        __pyx_v_nested.push_back( arrow::FieldRef(((int)__pyx_t_6)));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 2908, __pyx_L1_error)
      }

      /* "pyarrow/_compute.pyx":2907
 *         nested.reserve(len(names))
 *         for name in names:
 *             if isinstance(name, int):             # <<<<<<<<<<<<<<
 *                 nested.push_back(CFieldRef(<int>name))
 *             else:
*/
      goto __pyx_L6;
    }

    /* "pyarrow/_compute.pyx":2910
 *                 nested.push_back(CFieldRef(<int>name))
 *             else:
 *                 nested.push_back(CFieldRef(<c_string> tobytes(name)))             # <<<<<<<<<<<<<<
 *         return Expression.wrap(CMakeFieldExpression(CFieldRef(move(nested))))
 * 
*/
    /*else*/ {
      __pyx_t_7 = NULL;
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2910, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_5 = 1;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        assert(__pyx_t_7);
        PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(__pyx__function);
        __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
        __pyx_t_5 = 0;
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_name};
        __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2910, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
      }
      __pyx_t_9 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2910, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      try {
        __pyx_v_nested.push_back( arrow::FieldRef(((std::string)__pyx_t_9)));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 2910, __pyx_L1_error)
      }
    }
    __pyx_L6:;

    /* "pyarrow/_compute.pyx":2906
 *             raise ValueError("nested field reference should be non-empty")
 *         nested.reserve(len(names))
 *         for name in names:             # <<<<<<<<<<<<<<
 *             if isinstance(name, int):
 *                 nested.push_back(CFieldRef(<int>name))
*/
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":2911
 *             else:
 *                 nested.push_back(CFieldRef(<c_string> tobytes(name)))
 *         return Expression.wrap(CMakeFieldExpression(CFieldRef(move(nested))))             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __pyx_f_7pyarrow_8_compute_10Expression_wrap(arrow::compute::field_ref( arrow::FieldRef(cython_std::move<std::vector< arrow::FieldRef> >(__pyx_v_nested)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2898
 *             return Expression.wrap(CMakeFieldExpression(c_field))
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _nested_field(tuple names not None):
 *         cdef:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pyarrow._compute.Expression._nested_field", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2913
 *         return Expression.wrap(CMakeFieldExpression(CFieldRef(move(nested))))
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _scalar(value):
 *         cdef:
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_51_scalar(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10Expression_50_scalar, "Expression._scalar(value)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10Expression_51_scalar = {"_scalar", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_51_scalar, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_50_scalar};
static PyObject *__pyx_pw_7pyarrow_8_compute_10Expression_51_scalar(CYTHON_UNUSED PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_value = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_scalar (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_value,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 2913, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2913, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_scalar", 0) < (0)) __PYX_ERR(0, 2913, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_scalar", 1, 1, 1, i); __PYX_ERR(0, 2913, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2913, __pyx_L3_error)
    }
    __pyx_v_value = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_scalar", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2913, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.Expression._scalar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10Expression_50_scalar(__pyx_v_value);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10Expression_50_scalar(PyObject *__pyx_v_value) {
  struct __pyx_obj_7pyarrow_3lib_Scalar *__pyx_v_scalar = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  size_t __pyx_t_6;
  std::shared_ptr< arrow::Scalar>  __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_scalar", 0);

  /* "pyarrow/_compute.pyx":2918
 *             Scalar scalar
 * 
 *         if isinstance(value, Scalar):             # <<<<<<<<<<<<<<
 *             scalar = value
 *         else:
*/
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_value, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Scalar); 
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2919
 * 
 *         if isinstance(value, Scalar):
 *             scalar = value             # <<<<<<<<<<<<<<
 *         else:
 *             scalar = lib.scalar(value)
*/
    __pyx_t_2 = __pyx_v_value;
    __Pyx_INCREF(__pyx_t_2);
    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Scalar))))) __PYX_ERR(0, 2919, __pyx_L1_error)
    __pyx_v_scalar = ((struct __pyx_obj_7pyarrow_3lib_Scalar *)__pyx_t_2);
    __pyx_t_2 = 0;

    /* "pyarrow/_compute.pyx":2918
 *             Scalar scalar
 * 
 *         if isinstance(value, Scalar):             # <<<<<<<<<<<<<<
 *             scalar = value
 *         else:
*/
    goto __pyx_L3;
  }

  /* "pyarrow/_compute.pyx":2921
 *             scalar = value
 *         else:
 *             scalar = lib.scalar(value)             # <<<<<<<<<<<<<<
 * 
 *         return Expression.wrap(CMakeScalarExpression(scalar.unwrap()))
*/
  /*else*/ {
    __pyx_t_3 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_lib); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_scalar); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      assert(__pyx_t_3);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
      __pyx_t_6 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_value};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2921, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Scalar))))) __PYX_ERR(0, 2921, __pyx_L1_error)
    __pyx_v_scalar = ((struct __pyx_obj_7pyarrow_3lib_Scalar *)__pyx_t_2);
    __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "pyarrow/_compute.pyx":2923
 *             scalar = lib.scalar(value)
 * 
 *         return Expression.wrap(CMakeScalarExpression(scalar.unwrap()))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = ((struct __pyx_vtabstruct_7pyarrow_3lib_Scalar *)__pyx_v_scalar->__pyx_vtab)->unwrap(__pyx_v_scalar); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2923, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_7pyarrow_8_compute_10Expression_wrap(arrow::compute::literal(__PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_7))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2913
 *         return Expression.wrap(CMakeFieldExpression(CFieldRef(move(nested))))
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _scalar(value):
 *         cdef:
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pyarrow._compute.Expression._scalar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_scalar);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2932
 * 
 * 
 * cdef CExpression _bind(Expression filter, Schema schema) except *:             # <<<<<<<<<<<<<<
 *     assert schema is not None
 * 
*/

static arrow::compute::Expression __pyx_f_7pyarrow_8_compute__bind(struct __pyx_obj_7pyarrow_8_compute_Expression *__pyx_v_filter, struct __pyx_obj_7pyarrow_3lib_Schema *__pyx_v_schema) {
  arrow::compute::Expression __pyx_r;
  int __pyx_t_1;
  arrow::compute::Expression __pyx_t_2;
  std::shared_ptr< arrow::Schema>  __pyx_t_3;
  arrow::compute::Expression __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pyarrow/_compute.pyx":2933
 * 
 * cdef CExpression _bind(Expression filter, Schema schema) except *:
 *     assert schema is not None             # <<<<<<<<<<<<<<
 * 
 *     if filter is None:
*/
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(__pyx_assertions_enabled())) {
    __pyx_t_1 = (((PyObject *)__pyx_v_schema) != Py_None);
    if (unlikely(!__pyx_t_1)) {
      __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_AssertionError))), 0, 0, 0);
      __PYX_ERR(0, 2933, __pyx_L1_error)
    }
  }
  #else
  if ((1)); else __PYX_ERR(0, 2933, __pyx_L1_error)
  #endif

  /* "pyarrow/_compute.pyx":2935
 *     assert schema is not None
 * 
 *     if filter is None:             # <<<<<<<<<<<<<<
 *         return _true
 * 
*/
  __pyx_t_1 = (((PyObject *)__pyx_v_filter) == Py_None);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":2936
 * 
 *     if filter is None:
 *         return _true             # <<<<<<<<<<<<<<
 * 
 *     return GetResultValue(filter.unwrap().Bind(
*/
    __pyx_r = __pyx_v_7pyarrow_8_compute__true;
    goto __pyx_L0;

    /* "pyarrow/_compute.pyx":2935
 *     assert schema is not None
 * 
 *     if filter is None:             # <<<<<<<<<<<<<<
 *         return _true
 * 
*/
  }

  /* "pyarrow/_compute.pyx":2938
 *         return _true
 * 
 *     return GetResultValue(filter.unwrap().Bind(             # <<<<<<<<<<<<<<
 *         deref(pyarrow_unwrap_schema(schema).get())))
 * 
*/
  __pyx_t_2 = __pyx_f_7pyarrow_8_compute_10Expression_unwrap(__pyx_v_filter); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2938, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2939
 * 
 *     return GetResultValue(filter.unwrap().Bind(
 *         deref(pyarrow_unwrap_schema(schema).get())))             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_3 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_schema(((PyObject *)__pyx_v_schema)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2939, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2938
 *         return _true
 * 
 *     return GetResultValue(filter.unwrap().Bind(             # <<<<<<<<<<<<<<
 *         deref(pyarrow_unwrap_schema(schema).get())))
 * 
*/
  __pyx_t_4 = arrow::py::GetResultValue<arrow::compute::Expression>(__pyx_t_2.Bind((*__pyx_t_3.get()))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2938, __pyx_L1_error)
  __pyx_r = __pyx_t_4;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2932
 * 
 * 
 * cdef CExpression _bind(Expression filter, Schema schema) except *:             # <<<<<<<<<<<<<<
 *     assert schema is not None
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute._bind", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2950
 *     """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")
 * 
*/

/* Python wrapper */
static int __pyx_pw_7pyarrow_8_compute_10UdfContext_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_7pyarrow_8_compute_10UdfContext_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, __pyx_nargs); return -1; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return -1;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__init__", __pyx_kwds); return -1;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10UdfContext___init__(((struct __pyx_obj_7pyarrow_8_compute_UdfContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_7pyarrow_8_compute_10UdfContext___init__(struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5[3];
  size_t __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "pyarrow/_compute.pyx":2951
 * 
 *     def __init__(self):
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")             # <<<<<<<<<<<<<<
 * 
 *     cdef void init(self, const CUdfContext &c_context):
*/
  __pyx_t_2 = NULL;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_Do_not_call;
  __pyx_t_5[1] = __pyx_t_3;
  __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u_s_constructor_directly;
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, 12 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 23, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2951, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(0, 2951, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":2950
 *     """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")
 * 
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.UdfContext.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2953
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")
 * 
 *     cdef void init(self, const CUdfContext &c_context):             # <<<<<<<<<<<<<<
 *         self.c_context = c_context
 * 
*/

static void __pyx_f_7pyarrow_8_compute_10UdfContext_init(struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self,  arrow::py::UdfContext const &__pyx_v_c_context) {

  /* "pyarrow/_compute.pyx":2954
 * 
 *     cdef void init(self, const CUdfContext &c_context):
 *         self.c_context = c_context             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __pyx_v_self->c_context = __pyx_v_c_context;

  /* "pyarrow/_compute.pyx":2953
 *         raise TypeError(f"Do not call {self.__class__.__name__}'s constructor directly")
 * 
 *     cdef void init(self, const CUdfContext &c_context):             # <<<<<<<<<<<<<<
 *         self.c_context = c_context
 * 
*/

  /* function exit code */
}

/* "pyarrow/_compute.pyx":2956
 *         self.c_context = c_context
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def batch_length(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10UdfContext_12batch_length_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10UdfContext_12batch_length_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10UdfContext_12batch_length___get__(((struct __pyx_obj_7pyarrow_8_compute_UdfContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10UdfContext_12batch_length___get__(struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":2966
 *         with a constant value.
 *         """
 *         return self.c_context.batch_length             # <<<<<<<<<<<<<<
 * 
 *     @property
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyLong_From_int64_t(__pyx_v_self->c_context.batch_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2966, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2956
 *         self.c_context = c_context
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def batch_length(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.UdfContext.batch_length.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2968
 *         return self.c_context.batch_length
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def memory_pool(self):
 *         """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10UdfContext_11memory_pool_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_7pyarrow_8_compute_10UdfContext_11memory_pool_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10UdfContext_11memory_pool___get__(((struct __pyx_obj_7pyarrow_8_compute_UdfContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10UdfContext_11memory_pool___get__(struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "pyarrow/_compute.pyx":2977
 *         UDF makes if that call accepts a memory_pool.
 *         """
 *         return box_memory_pool(self.c_context.pool)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_7pyarrow_3lib_box_memory_pool(__pyx_v_self->c_context.pool); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2968
 *         return self.c_context.batch_length
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def memory_pool(self):
 *         """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.UdfContext.memory_pool.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10UdfContext_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10UdfContext_2__reduce_cython__, "UdfContext.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10UdfContext_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10UdfContext_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10UdfContext_2__reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_10UdfContext_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10UdfContext_2__reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute_UdfContext *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10UdfContext_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_c_context_cannot_be_convert, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.UdfContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_10UdfContext_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_10UdfContext_4__setstate_cython__, "UdfContext.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_10UdfContext_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10UdfContext_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10UdfContext_4__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_10UdfContext_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.UdfContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_10UdfContext_4__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute_UdfContext *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_10UdfContext_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_c_context_cannot_be_convert, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.UdfContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":2980
 * 
 * 
 * cdef inline CFunctionDoc _make_function_doc(dict func_doc) except *:             # <<<<<<<<<<<<<<
 *     """
 *     Helper function to generate the FunctionDoc
*/

static CYTHON_INLINE  arrow::compute::FunctionDoc __pyx_f_7pyarrow_8_compute__make_function_doc(PyObject *__pyx_v_func_doc) {
   arrow::compute::FunctionDoc __pyx_v_f_doc;
  std::vector<std::string>  __pyx_v_c_arg_names;
  PyObject *__pyx_v_arg_name = NULL;
   arrow::compute::FunctionDoc __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  std::string __pyx_t_6;
  Py_ssize_t __pyx_t_7;
  PyObject *(*__pyx_t_8)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_make_function_doc", 0);

  /* "pyarrow/_compute.pyx":2990
 *         vector[c_string] c_arg_names
 * 
 *     f_doc.summary = tobytes(func_doc["summary"])             # <<<<<<<<<<<<<<
 *     f_doc.description = tobytes(func_doc["description"])
 *     for arg_name in func_doc["arg_names"]:
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(__pyx_v_func_doc == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(0, 2990, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_func_doc, __pyx_mstate_global->__pyx_n_u_summary); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2990, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2990, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_f_doc.summary = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_6);

  /* "pyarrow/_compute.pyx":2991
 * 
 *     f_doc.summary = tobytes(func_doc["summary"])
 *     f_doc.description = tobytes(func_doc["description"])             # <<<<<<<<<<<<<<
 *     for arg_name in func_doc["arg_names"]:
 *         c_arg_names.push_back(tobytes(arg_name))
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (unlikely(__pyx_v_func_doc == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(0, 2991, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_func_doc, __pyx_mstate_global->__pyx_n_u_description); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_6 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2991, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_f_doc.description = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_6);

  /* "pyarrow/_compute.pyx":2992
 *     f_doc.summary = tobytes(func_doc["summary"])
 *     f_doc.description = tobytes(func_doc["description"])
 *     for arg_name in func_doc["arg_names"]:             # <<<<<<<<<<<<<<
 *         c_arg_names.push_back(tobytes(arg_name))
 *     f_doc.arg_names = c_arg_names
*/
  if (unlikely(__pyx_v_func_doc == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(0, 2992, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_func_doc, __pyx_mstate_global->__pyx_n_u_arg_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4);
    __pyx_t_7 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2992, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2992, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 2992, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference);
        ++__pyx_t_7;
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_SIZE
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 2992, __pyx_L1_error)
          #endif
          if (__pyx_t_7 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_7));
        #else
        __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_7);
        #endif
        ++__pyx_t_7;
      }
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2992, __pyx_L1_error)
    } else {
      __pyx_t_1 = __pyx_t_8(__pyx_t_4);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 2992, __pyx_L1_error)
          PyErr_Clear();
        }
        break;
      }
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_arg_name, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "pyarrow/_compute.pyx":2993
 *     f_doc.description = tobytes(func_doc["description"])
 *     for arg_name in func_doc["arg_names"]:
 *         c_arg_names.push_back(tobytes(arg_name))             # <<<<<<<<<<<<<<
 *     f_doc.arg_names = c_arg_names
 *     # UDFOptions integration:
*/
    __pyx_t_2 = NULL;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = 1;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      assert(__pyx_t_2);
      PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx__function);
      __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
      __pyx_t_5 = 0;
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_arg_name};
      __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2993, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
    }
    __pyx_t_6 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2993, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    try {
      __pyx_v_c_arg_names.push_back(__pyx_t_6);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 2993, __pyx_L1_error)
    }

    /* "pyarrow/_compute.pyx":2992
 *     f_doc.summary = tobytes(func_doc["summary"])
 *     f_doc.description = tobytes(func_doc["description"])
 *     for arg_name in func_doc["arg_names"]:             # <<<<<<<<<<<<<<
 *         c_arg_names.push_back(tobytes(arg_name))
 *     f_doc.arg_names = c_arg_names
*/
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2994
 *     for arg_name in func_doc["arg_names"]:
 *         c_arg_names.push_back(tobytes(arg_name))
 *     f_doc.arg_names = c_arg_names             # <<<<<<<<<<<<<<
 *     # UDFOptions integration:
 *     # TODO: https://issues.apache.org/jira/browse/ARROW-16041
*/
  __pyx_v_f_doc.arg_names = __pyx_v_c_arg_names;

  /* "pyarrow/_compute.pyx":2997
 *     # UDFOptions integration:
 *     # TODO: https://issues.apache.org/jira/browse/ARROW-16041
 *     f_doc.options_class = b""             # <<<<<<<<<<<<<<
 *     f_doc.options_required = False
 *     return f_doc
*/
  __pyx_t_6 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_mstate_global->__pyx_kp_b__3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2997, __pyx_L1_error)
  __pyx_v_f_doc.options_class = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_6);

  /* "pyarrow/_compute.pyx":2998
 *     # TODO: https://issues.apache.org/jira/browse/ARROW-16041
 *     f_doc.options_class = b""
 *     f_doc.options_required = False             # <<<<<<<<<<<<<<
 *     return f_doc
 * 
*/
  __pyx_v_f_doc.options_required = 0;

  /* "pyarrow/_compute.pyx":2999
 *     f_doc.options_class = b""
 *     f_doc.options_required = False
 *     return f_doc             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_r = __pyx_v_f_doc;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":2980
 * 
 * 
 * cdef inline CFunctionDoc _make_function_doc(dict func_doc) except *:             # <<<<<<<<<<<<<<
 *     """
 *     Helper function to generate the FunctionDoc
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute._make_function_doc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_arg_name);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3002
 * 
 * 
 * cdef object box_udf_context(const CUdfContext& c_context):             # <<<<<<<<<<<<<<
 *     cdef UdfContext context = UdfContext.__new__(UdfContext)
 *     context.init(c_context)
*/

static PyObject *__pyx_f_7pyarrow_8_compute_box_udf_context( arrow::py::UdfContext const &__pyx_v_c_context) {
  struct __pyx_obj_7pyarrow_8_compute_UdfContext *__pyx_v_context = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("box_udf_context", 0);

  /* "pyarrow/_compute.pyx":3003
 * 
 * cdef object box_udf_context(const CUdfContext& c_context):
 *     cdef UdfContext context = UdfContext.__new__(UdfContext)             # <<<<<<<<<<<<<<
 *     context.init(c_context)
 *     return context
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_UdfContext(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_UdfContext), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3003, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_context = ((struct __pyx_obj_7pyarrow_8_compute_UdfContext *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":3004
 * cdef object box_udf_context(const CUdfContext& c_context):
 *     cdef UdfContext context = UdfContext.__new__(UdfContext)
 *     context.init(c_context)             # <<<<<<<<<<<<<<
 *     return context
 * 
*/
  ((struct __pyx_vtabstruct_7pyarrow_8_compute_UdfContext *)__pyx_v_context->__pyx_vtab)->init(__pyx_v_context, __pyx_v_c_context); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3004, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":3005
 *     cdef UdfContext context = UdfContext.__new__(UdfContext)
 *     context.init(c_context)
 *     return context             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_context);
  __pyx_r = ((PyObject *)__pyx_v_context);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3002
 * 
 * 
 * cdef object box_udf_context(const CUdfContext& c_context):             # <<<<<<<<<<<<<<
 *     cdef UdfContext context = UdfContext.__new__(UdfContext)
 *     context.init(c_context)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.box_udf_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_context);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3008
 * 
 * 
 * cdef _udf_callback(user_function, const CUdfContext& c_context, inputs):             # <<<<<<<<<<<<<<
 *     """
 *     Helper callback function used to wrap the UdfContext from Python to C++
*/

static PyObject *__pyx_f_7pyarrow_8_compute__udf_callback(PyObject *__pyx_v_user_function,  arrow::py::UdfContext const &__pyx_v_c_context, PyObject *__pyx_v_inputs) {
  PyObject *__pyx_v_context = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_udf_callback", 0);

  /* "pyarrow/_compute.pyx":3013
 *     execution.
 *     """
 *     context = box_udf_context(c_context)             # <<<<<<<<<<<<<<
 *     return user_function(context, *inputs)
 * 
*/
  __pyx_t_1 = __pyx_f_7pyarrow_8_compute_box_udf_context(__pyx_v_c_context); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_context = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":3014
 *     """
 *     context = box_udf_context(c_context)
 *     return user_function(context, *inputs)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_context);
  __Pyx_GIVEREF(__pyx_v_context);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_context) != (0)) __PYX_ERR(0, 3014, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_v_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_user_function, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3008
 * 
 * 
 * cdef _udf_callback(user_function, const CUdfContext& c_context, inputs):             # <<<<<<<<<<<<<<
 *     """
 *     Helper callback function used to wrap the UdfContext from Python to C++
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._udf_callback", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_context);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3017
 * 
 * 
 * def _get_udf_context(memory_pool, batch_length):             # <<<<<<<<<<<<<<
 *     cdef CUdfContext c_context
 *     c_context.pool = maybe_unbox_memory_pool(memory_pool)
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_19_get_udf_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_18_get_udf_context, "_get_udf_context(memory_pool, batch_length)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_19_get_udf_context = {"_get_udf_context", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_get_udf_context, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_get_udf_context};
static PyObject *__pyx_pw_7pyarrow_8_compute_19_get_udf_context(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_memory_pool = 0;
  PyObject *__pyx_v_batch_length = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_get_udf_context (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_memory_pool,&__pyx_mstate_global->__pyx_n_u_batch_length,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 3017, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3017, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3017, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_get_udf_context", 0) < (0)) __PYX_ERR(0, 3017, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_get_udf_context", 1, 2, 2, i); __PYX_ERR(0, 3017, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3017, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3017, __pyx_L3_error)
    }
    __pyx_v_memory_pool = values[0];
    __pyx_v_batch_length = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_get_udf_context", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 3017, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._get_udf_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_18_get_udf_context(__pyx_self, __pyx_v_memory_pool, __pyx_v_batch_length);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_18_get_udf_context(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_memory_pool, PyObject *__pyx_v_batch_length) {
   arrow::py::UdfContext __pyx_v_c_context;
  PyObject *__pyx_v_context = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
   arrow::MemoryPool *__pyx_t_1;
  int64_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_get_udf_context", 0);

  /* "pyarrow/_compute.pyx":3019
 * def _get_udf_context(memory_pool, batch_length):
 *     cdef CUdfContext c_context
 *     c_context.pool = maybe_unbox_memory_pool(memory_pool)             # <<<<<<<<<<<<<<
 *     c_context.batch_length = batch_length
 *     context = box_udf_context(c_context)
*/
  if (!(likely(((__pyx_v_memory_pool) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_memory_pool, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_MemoryPool))))) __PYX_ERR(0, 3019, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_7pyarrow_3lib_maybe_unbox_memory_pool(((struct __pyx_obj_7pyarrow_3lib_MemoryPool *)__pyx_v_memory_pool)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3019, __pyx_L1_error)
  __pyx_v_c_context.pool = __pyx_t_1;

  /* "pyarrow/_compute.pyx":3020
 *     cdef CUdfContext c_context
 *     c_context.pool = maybe_unbox_memory_pool(memory_pool)
 *     c_context.batch_length = batch_length             # <<<<<<<<<<<<<<
 *     context = box_udf_context(c_context)
 *     return context
*/
  __pyx_t_2 = __Pyx_PyLong_As_int64_t(__pyx_v_batch_length); if (unlikely((__pyx_t_2 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 3020, __pyx_L1_error)
  __pyx_v_c_context.batch_length = __pyx_t_2;

  /* "pyarrow/_compute.pyx":3021
 *     c_context.pool = maybe_unbox_memory_pool(memory_pool)
 *     c_context.batch_length = batch_length
 *     context = box_udf_context(c_context)             # <<<<<<<<<<<<<<
 *     return context
 * 
*/
  __pyx_t_3 = __pyx_f_7pyarrow_8_compute_box_udf_context(__pyx_v_c_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_context = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "pyarrow/_compute.pyx":3022
 *     c_context.batch_length = batch_length
 *     context = box_udf_context(c_context)
 *     return context             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_context);
  __pyx_r = __pyx_v_context;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3017
 * 
 * 
 * def _get_udf_context(memory_pool, batch_length):             # <<<<<<<<<<<<<<
 *     cdef CUdfContext c_context
 *     c_context.pool = maybe_unbox_memory_pool(memory_pool)
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute._get_udf_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_context);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3031
 *     cdef CRegisterUdf register_func
 * 
 *     cdef void init(self, const CRegisterUdf register_func):             # <<<<<<<<<<<<<<
 *         self.register_func = register_func
 * 
*/

static void __pyx_f_7pyarrow_8_compute_11RegisterUdf_init(struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *__pyx_v_self, __pyx_t_7pyarrow_8_compute_CRegisterUdf const __pyx_v_register_func) {

  /* "pyarrow/_compute.pyx":3032
 * 
 *     cdef void init(self, const CRegisterUdf register_func):
 *         self.register_func = register_func             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_v_self->register_func = __pyx_v_register_func;

  /* "pyarrow/_compute.pyx":3031
 *     cdef CRegisterUdf register_func
 * 
 *     cdef void init(self, const CRegisterUdf register_func):             # <<<<<<<<<<<<<<
 *         self.register_func = register_func
 * 
*/

  /* function exit code */
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11RegisterUdf_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11RegisterUdf___reduce_cython__, "RegisterUdf.__reduce_cython__(self)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11RegisterUdf_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11RegisterUdf_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11RegisterUdf___reduce_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11RegisterUdf_1__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL; }
  const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
  if (unlikely(__pyx_kwds_len < 0)) return NULL;
  if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;}
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11RegisterUdf___reduce_cython__(((struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11RegisterUdf___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_register_func_cannot_be_con, 0, 0);
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.RegisterUdf.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_11RegisterUdf_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_11RegisterUdf_2__setstate_cython__, "RegisterUdf.__setstate_cython__(self, __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_11RegisterUdf_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11RegisterUdf_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11RegisterUdf_2__setstate_cython__};
static PyObject *__pyx_pw_7pyarrow_8_compute_11RegisterUdf_3__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 3, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__setstate_cython__", 0) < (0)) __PYX_ERR(1, 3, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, i); __PYX_ERR(1, 3, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 3, __pyx_L3_error)
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.RegisterUdf.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_11RegisterUdf_2__setstate_cython__(((struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_11RegisterUdf_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"             # <<<<<<<<<<<<<<
*/
  __Pyx_Raise(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), __pyx_mstate_global->__pyx_kp_u_self_register_func_cannot_be_con, 0, 0);
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.RegisterUdf.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3035
 * 
 * 
 * cdef get_register_scalar_function():             # <<<<<<<<<<<<<<
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterScalarFunction
*/

static PyObject *__pyx_f_7pyarrow_8_compute_get_register_scalar_function(void) {
  struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *__pyx_v_reg = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_register_scalar_function", 0);

  /* "pyarrow/_compute.pyx":3036
 * 
 * cdef get_register_scalar_function():
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)             # <<<<<<<<<<<<<<
 *     reg.register_func = RegisterScalarFunction
 *     return reg
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_RegisterUdf(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_RegisterUdf), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3036, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_reg = ((struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":3037
 * cdef get_register_scalar_function():
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterScalarFunction             # <<<<<<<<<<<<<<
 *     return reg
 * 
*/
  __pyx_v_reg->register_func = arrow::py::RegisterScalarFunction;

  /* "pyarrow/_compute.pyx":3038
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterScalarFunction
 *     return reg             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_reg);
  __pyx_r = ((PyObject *)__pyx_v_reg);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3035
 * 
 * 
 * cdef get_register_scalar_function():             # <<<<<<<<<<<<<<
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterScalarFunction
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.get_register_scalar_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_reg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3041
 * 
 * 
 * cdef get_register_tabular_function():             # <<<<<<<<<<<<<<
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterTabularFunction
*/

static PyObject *__pyx_f_7pyarrow_8_compute_get_register_tabular_function(void) {
  struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *__pyx_v_reg = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_register_tabular_function", 0);

  /* "pyarrow/_compute.pyx":3042
 * 
 * cdef get_register_tabular_function():
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)             # <<<<<<<<<<<<<<
 *     reg.register_func = RegisterTabularFunction
 *     return reg
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_RegisterUdf(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_RegisterUdf), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3042, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_reg = ((struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":3043
 * cdef get_register_tabular_function():
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterTabularFunction             # <<<<<<<<<<<<<<
 *     return reg
 * 
*/
  __pyx_v_reg->register_func = arrow::py::RegisterTabularFunction;

  /* "pyarrow/_compute.pyx":3044
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterTabularFunction
 *     return reg             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_reg);
  __pyx_r = ((PyObject *)__pyx_v_reg);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3041
 * 
 * 
 * cdef get_register_tabular_function():             # <<<<<<<<<<<<<<
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterTabularFunction
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.get_register_tabular_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_reg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3047
 * 
 * 
 * cdef get_register_aggregate_function():             # <<<<<<<<<<<<<<
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterAggregateFunction
*/

static PyObject *__pyx_f_7pyarrow_8_compute_get_register_aggregate_function(void) {
  struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *__pyx_v_reg = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_register_aggregate_function", 0);

  /* "pyarrow/_compute.pyx":3048
 * 
 * cdef get_register_aggregate_function():
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)             # <<<<<<<<<<<<<<
 *     reg.register_func = RegisterAggregateFunction
 *     return reg
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_RegisterUdf(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_RegisterUdf), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3048, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_reg = ((struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":3049
 * cdef get_register_aggregate_function():
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterAggregateFunction             # <<<<<<<<<<<<<<
 *     return reg
 * 
*/
  __pyx_v_reg->register_func = arrow::py::RegisterAggregateFunction;

  /* "pyarrow/_compute.pyx":3050
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterAggregateFunction
 *     return reg             # <<<<<<<<<<<<<<
 * 
 * cdef get_register_vector_function():
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_reg);
  __pyx_r = ((PyObject *)__pyx_v_reg);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3047
 * 
 * 
 * cdef get_register_aggregate_function():             # <<<<<<<<<<<<<<
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterAggregateFunction
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.get_register_aggregate_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_reg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3052
 *     return reg
 * 
 * cdef get_register_vector_function():             # <<<<<<<<<<<<<<
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterVectorFunction
*/

static PyObject *__pyx_f_7pyarrow_8_compute_get_register_vector_function(void) {
  struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *__pyx_v_reg = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_register_vector_function", 0);

  /* "pyarrow/_compute.pyx":3053
 * 
 * cdef get_register_vector_function():
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)             # <<<<<<<<<<<<<<
 *     reg.register_func = RegisterVectorFunction
 *     return reg
*/
  __pyx_t_1 = ((PyObject *)__pyx_tp_new_7pyarrow_8_compute_RegisterUdf(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_RegisterUdf), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3053, __pyx_L1_error)
  __Pyx_GOTREF((PyObject *)__pyx_t_1);
  __pyx_v_reg = ((struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":3054
 * cdef get_register_vector_function():
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterVectorFunction             # <<<<<<<<<<<<<<
 *     return reg
 * 
*/
  __pyx_v_reg->register_func = arrow::py::RegisterVectorFunction;

  /* "pyarrow/_compute.pyx":3055
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterVectorFunction
 *     return reg             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_reg);
  __pyx_r = ((PyObject *)__pyx_v_reg);
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3052
 *     return reg
 * 
 * cdef get_register_vector_function():             # <<<<<<<<<<<<<<
 *     cdef RegisterUdf reg = RegisterUdf.__new__(RegisterUdf)
 *     reg.register_func = RegisterVectorFunction
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pyarrow._compute.get_register_vector_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_reg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3058
 * 
 * 
 * def register_scalar_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                              func_registry=None):
 *     """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_21register_scalar_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_20register_scalar_function, "register_scalar_function(func, function_name, function_doc, in_types, out_type, func_registry=None)\n\nRegister a user-defined scalar function.\n\nThis API is EXPERIMENTAL.\n\nA scalar function is a function that executes elementwise\noperations on arrays or scalars, i.e. a scalar function must\nbe computed row-by-row with no state where each output row\nis computed only from its corresponding input row.\nIn other words, all argument arrays have the same length,\nand the output array is of the same length as the arguments.\nScalar functions are the only functions allowed in query engine\nexpressions.\n\nParameters\n----------\nfunc : callable\n    A callable implementing the user-defined function.\n    The first argument is the context argument of type\n    UdfContext.\n    Then, it must take arguments equal to the number of\n    in_types defined. It must return an Array or Scalar\n    matching the out_type. It must return a Scalar if\n    all arguments are scalar, else it must return an Array.\n\n    To define a varargs function, pass a callable that takes\n    ``*args``. The last in_type will be the type of all varargs\n    arguments.\nfunction_name : str\n    Name of the function. There should only be one function\n    registered with this name in the function registry.\nfunction_doc : dict\n    A dictionary object with keys \"summary\" (str),\n    and \"description\" (str).\nin_types : Dict[str, DataType]\n    A dictionary mapping function argument names to\n    their respective DataType.\n    The argument names will be used to generate\n    documentation for the function. The number of\n    arguments specified here determines the function\n    arity.\nout_type : DataType\n    Output type of the function.\nfunc_registry : FunctionRegistry\n    Optional function registry to use instead of the default global one.\n\nExamples\n--------\n>>> import pyarrow as pa\n>>> import pyarrow.compute as pc\n>>>\n>>> func_doc = {}\n>>> func_doc[\"summary\"] = \"simple udf\"""\n>>> func_doc[\"description\"] = \"add a constant to a scalar\"\n>>>\n>>> def add_constant(ctx, array):\n...     return pc.add(array, 1, memory_pool=ctx.memory_pool)\n>>>\n>>> func_name = \"py_add_func\"\n>>> in_types = {\"array\": pa.int64()}\n>>> out_type = pa.int64()\n>>> pc.register_scalar_function(add_constant, func_name, func_doc,\n...                   in_types, out_type)\n>>>\n>>> func = pc.get_function(func_name)\n>>> func.name\n'py_add_func'\n>>> answer = pc.call_function(func_name, [pa.array([20])])\n>>> answer\n<pyarrow.lib.Int64Array object at ...>\n[\n  21\n]");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_21register_scalar_function = {"register_scalar_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21register_scalar_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20register_scalar_function};
static PyObject *__pyx_pw_7pyarrow_8_compute_21register_scalar_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_func = 0;
  PyObject *__pyx_v_function_name = 0;
  PyObject *__pyx_v_function_doc = 0;
  PyObject *__pyx_v_in_types = 0;
  PyObject *__pyx_v_out_type = 0;
  PyObject *__pyx_v_func_registry = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("register_scalar_function (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_function_doc,&__pyx_mstate_global->__pyx_n_u_in_types,&__pyx_mstate_global->__pyx_n_u_out_type,&__pyx_mstate_global->__pyx_n_u_func_registry,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 3058, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 3058, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 3058, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 3058, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3058, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3058, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3058, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "register_scalar_function", 0) < (0)) __PYX_ERR(0, 3058, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":3059
 * 
 * def register_scalar_function(func, function_name, function_doc, in_types, out_type,
 *                              func_registry=None):             # <<<<<<<<<<<<<<
 *     """
 *     Register a user-defined scalar function.
*/
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("register_scalar_function", 0, 5, 6, i); __PYX_ERR(0, 3058, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 3058, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 3058, __pyx_L3_error)
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 3058, __pyx_L3_error)
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3058, __pyx_L3_error)
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3058, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3058, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_func = values[0];
    __pyx_v_function_name = values[1];
    __pyx_v_function_doc = values[2];
    __pyx_v_in_types = values[3];
    __pyx_v_out_type = values[4];
    __pyx_v_func_registry = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("register_scalar_function", 0, 5, 6, __pyx_nargs); __PYX_ERR(0, 3058, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.register_scalar_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_20register_scalar_function(__pyx_self, __pyx_v_func, __pyx_v_function_name, __pyx_v_function_doc, __pyx_v_in_types, __pyx_v_out_type, __pyx_v_func_registry);

  /* "pyarrow/_compute.pyx":3058
 * 
 * 
 * def register_scalar_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                              func_registry=None):
 *     """
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_20register_scalar_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func, PyObject *__pyx_v_function_name, PyObject *__pyx_v_function_doc, PyObject *__pyx_v_in_types, PyObject *__pyx_v_out_type, PyObject *__pyx_v_func_registry) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("register_scalar_function", 0);

  /* "pyarrow/_compute.pyx":3134
 *     ]
 *     """
 *     return _register_user_defined_function(get_register_scalar_function(),             # <<<<<<<<<<<<<<
 *                                            func, function_name, function_doc, in_types,
 *                                            out_type, func_registry)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_register_user_defined_function); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __pyx_f_7pyarrow_8_compute_get_register_scalar_function(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "pyarrow/_compute.pyx":3136
 *     return _register_user_defined_function(get_register_scalar_function(),
 *                                            func, function_name, function_doc, in_types,
 *                                            out_type, func_registry)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[8] = {__pyx_t_2, __pyx_t_4, __pyx_v_func, __pyx_v_function_name, __pyx_v_function_doc, __pyx_v_in_types, __pyx_v_out_type, __pyx_v_func_registry};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (8-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3058
 * 
 * 
 * def register_scalar_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                              func_registry=None):
 *     """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.register_scalar_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3139
 * 
 * 
 * def register_vector_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                              func_registry=None):
 *     """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_23register_vector_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_22register_vector_function, "register_vector_function(func, function_name, function_doc, in_types, out_type, func_registry=None)\n\nRegister a user-defined vector function.\n\nThis API is EXPERIMENTAL.\n\nA vector function is a function that executes vector\noperations on arrays. Vector function is often used\nwhen compute doesn't fit other more specific types of\nfunctions (e.g., scalar and aggregate).\n\nParameters\n----------\nfunc : callable\n    A callable implementing the user-defined function.\n    The first argument is the context argument of type\n    UdfContext.\n    Then, it must take arguments equal to the number of\n    in_types defined. It must return an Array or Scalar\n    matching the out_type. It must return a Scalar if\n    all arguments are scalar, else it must return an Array.\n\n    To define a varargs function, pass a callable that takes\n    *args. The last in_type will be the type of all varargs\n    arguments.\nfunction_name : str\n    Name of the function. There should only be one function\n    registered with this name in the function registry.\nfunction_doc : dict\n    A dictionary object with keys \"summary\" (str),\n    and \"description\" (str).\nin_types : Dict[str, DataType]\n    A dictionary mapping function argument names to\n    their respective DataType.\n    The argument names will be used to generate\n    documentation for the function. The number of\n    arguments specified here determines the function\n    arity.\nout_type : DataType\n    Output type of the function.\nfunc_registry : FunctionRegistry\n    Optional function registry to use instead of the default global one.\n\nExamples\n--------\n>>> import pyarrow as pa\n>>> import pyarrow.compute as pc\n>>>\n>>> func_doc = {}\n>>> func_doc[\"summary\"] = \"percent rank\"\n>>> func_doc[\"description\"] = \"compute percent rank\"\n>>>\n>>> def list_flatten_udf(ctx, x):\n...     return pc.list_flatten(x)\n>>>\n>>> func_name = \"list_flatten_udf\"\n>>> in_types = {\"array\": pa.list_(pa.int64())}\n>>> out_""type = pa.int64()\n>>> pc.register_vector_function(list_flatten_udf, func_name, func_doc,\n...                   in_types, out_type)\n>>>\n>>> answer = pc.call_function(func_name, [pa.array([[1, 2], [3, 4]])])\n>>> answer\n<pyarrow.lib.Int64Array object at ...>\n[\n  1,\n  2,\n  3,\n  4\n]");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_23register_vector_function = {"register_vector_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23register_vector_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22register_vector_function};
static PyObject *__pyx_pw_7pyarrow_8_compute_23register_vector_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_func = 0;
  PyObject *__pyx_v_function_name = 0;
  PyObject *__pyx_v_function_doc = 0;
  PyObject *__pyx_v_in_types = 0;
  PyObject *__pyx_v_out_type = 0;
  PyObject *__pyx_v_func_registry = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("register_vector_function (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_function_doc,&__pyx_mstate_global->__pyx_n_u_in_types,&__pyx_mstate_global->__pyx_n_u_out_type,&__pyx_mstate_global->__pyx_n_u_func_registry,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 3139, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 3139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 3139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 3139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "register_vector_function", 0) < (0)) __PYX_ERR(0, 3139, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":3140
 * 
 * def register_vector_function(func, function_name, function_doc, in_types, out_type,
 *                              func_registry=None):             # <<<<<<<<<<<<<<
 *     """
 *     Register a user-defined vector function.
*/
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("register_vector_function", 0, 5, 6, i); __PYX_ERR(0, 3139, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 3139, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 3139, __pyx_L3_error)
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 3139, __pyx_L3_error)
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3139, __pyx_L3_error)
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3139, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3139, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_func = values[0];
    __pyx_v_function_name = values[1];
    __pyx_v_function_doc = values[2];
    __pyx_v_in_types = values[3];
    __pyx_v_out_type = values[4];
    __pyx_v_func_registry = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("register_vector_function", 0, 5, 6, __pyx_nargs); __PYX_ERR(0, 3139, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.register_vector_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_22register_vector_function(__pyx_self, __pyx_v_func, __pyx_v_function_name, __pyx_v_function_doc, __pyx_v_in_types, __pyx_v_out_type, __pyx_v_func_registry);

  /* "pyarrow/_compute.pyx":3139
 * 
 * 
 * def register_vector_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                              func_registry=None):
 *     """
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_22register_vector_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func, PyObject *__pyx_v_function_name, PyObject *__pyx_v_function_doc, PyObject *__pyx_v_in_types, PyObject *__pyx_v_out_type, PyObject *__pyx_v_func_registry) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("register_vector_function", 0);

  /* "pyarrow/_compute.pyx":3211
 *     ]
 *     """
 *     return _register_user_defined_function(get_register_vector_function(),             # <<<<<<<<<<<<<<
 *                                            func, function_name, function_doc, in_types,
 *                                            out_type, func_registry)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_register_user_defined_function); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __pyx_f_7pyarrow_8_compute_get_register_vector_function(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "pyarrow/_compute.pyx":3213
 *     return _register_user_defined_function(get_register_vector_function(),
 *                                            func, function_name, function_doc, in_types,
 *                                            out_type, func_registry)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[8] = {__pyx_t_2, __pyx_t_4, __pyx_v_func, __pyx_v_function_name, __pyx_v_function_doc, __pyx_v_in_types, __pyx_v_out_type, __pyx_v_func_registry};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (8-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3139
 * 
 * 
 * def register_vector_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                              func_registry=None):
 *     """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.register_vector_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3216
 * 
 * 
 * def register_aggregate_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                                 func_registry=None):
 *     """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_25register_aggregate_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_24register_aggregate_function, "register_aggregate_function(func, function_name, function_doc, in_types, out_type, func_registry=None)\n\nRegister a user-defined non-decomposable aggregate function.\n\nThis API is EXPERIMENTAL.\n\nA non-decomposable aggregation function is a function that executes\naggregate operations on the whole data that it is aggregating.\nIn other words, non-decomposable aggregate function cannot be\nsplit into consume/merge/finalize steps.\n\nThis is often used with ordered or segmented aggregation where groups\ncan be emit before accumulating all of the input data.\n\nNote that currently the size of any input column cannot exceed 2 GB\nfor a single segment (all groups combined).\n\nParameters\n----------\nfunc : callable\n    A callable implementing the user-defined function.\n    The first argument is the context argument of type\n    UdfContext.\n    Then, it must take arguments equal to the number of\n    in_types defined. It must return a Scalar matching the\n    out_type.\n    To define a varargs function, pass a callable that takes\n    *args. The in_type needs to match in type of inputs when\n    the function gets called.\nfunction_name : str\n    Name of the function. This name must be unique, i.e.,\n    there should only be one function registered with\n    this name in the function registry.\nfunction_doc : dict\n    A dictionary object with keys \"summary\" (str),\n    and \"description\" (str).\nin_types : Dict[str, DataType]\n    A dictionary mapping function argument names to\n    their respective DataType.\n    The argument names will be used to generate\n    documentation for the function. The number of\n    arguments specified here determines the function\n    arity.\nout_type : DataType\n    Output type of the function.\nfunc_registry : FunctionRegistry\n    Optional function registry to use instead of the default global one.\n\nExamples\n--------\n>>> import numpy as np\n>>> import pyarrow as pa\n>>> import pyarrow.compute as pc\n>>>\n>>> func_doc = {}""\n>>> func_doc[\"summary\"] = \"simple median udf\"\n>>> func_doc[\"description\"] = \"compute median\"\n>>>\n>>> def compute_median(ctx, array):\n...     return pa.scalar(np.median(array))\n>>>\n>>> func_name = \"py_compute_median\"\n>>> in_types = {\"array\": pa.int64()}\n>>> out_type = pa.float64()\n>>> pc.register_aggregate_function(compute_median, func_name, func_doc,\n...                   in_types, out_type)\n>>>\n>>> func = pc.get_function(func_name)\n>>> func.name\n'py_compute_median'\n>>> answer = pc.call_function(func_name, [pa.array([20, 40])])\n>>> answer\n<pyarrow.DoubleScalar: 30.0>\n>>> table = pa.table([pa.array([1, 1, 2, 2]), pa.array([10, 20, 30, 40])], names=['k', 'v'])\n>>> result = table.group_by('k').aggregate([('v', 'py_compute_median')])\n>>> result\npyarrow.Table\nk: int64\nv_py_compute_median: double\n----\nk: [[1,2]]\nv_py_compute_median: [[15,35]]");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_25register_aggregate_function = {"register_aggregate_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_25register_aggregate_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24register_aggregate_function};
static PyObject *__pyx_pw_7pyarrow_8_compute_25register_aggregate_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_func = 0;
  PyObject *__pyx_v_function_name = 0;
  PyObject *__pyx_v_function_doc = 0;
  PyObject *__pyx_v_in_types = 0;
  PyObject *__pyx_v_out_type = 0;
  PyObject *__pyx_v_func_registry = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("register_aggregate_function (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_function_doc,&__pyx_mstate_global->__pyx_n_u_in_types,&__pyx_mstate_global->__pyx_n_u_out_type,&__pyx_mstate_global->__pyx_n_u_func_registry,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 3216, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 3216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 3216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 3216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "register_aggregate_function", 0) < (0)) __PYX_ERR(0, 3216, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":3217
 * 
 * def register_aggregate_function(func, function_name, function_doc, in_types, out_type,
 *                                 func_registry=None):             # <<<<<<<<<<<<<<
 *     """
 *     Register a user-defined non-decomposable aggregate function.
*/
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("register_aggregate_function", 0, 5, 6, i); __PYX_ERR(0, 3216, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 3216, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 3216, __pyx_L3_error)
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 3216, __pyx_L3_error)
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3216, __pyx_L3_error)
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3216, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3216, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_func = values[0];
    __pyx_v_function_name = values[1];
    __pyx_v_function_doc = values[2];
    __pyx_v_in_types = values[3];
    __pyx_v_out_type = values[4];
    __pyx_v_func_registry = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("register_aggregate_function", 0, 5, 6, __pyx_nargs); __PYX_ERR(0, 3216, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.register_aggregate_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_24register_aggregate_function(__pyx_self, __pyx_v_func, __pyx_v_function_name, __pyx_v_function_doc, __pyx_v_in_types, __pyx_v_out_type, __pyx_v_func_registry);

  /* "pyarrow/_compute.pyx":3216
 * 
 * 
 * def register_aggregate_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                                 func_registry=None):
 *     """
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_24register_aggregate_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func, PyObject *__pyx_v_function_name, PyObject *__pyx_v_function_doc, PyObject *__pyx_v_in_types, PyObject *__pyx_v_out_type, PyObject *__pyx_v_func_registry) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  size_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("register_aggregate_function", 0);

  /* "pyarrow/_compute.pyx":3300
 *     v_py_compute_median: [[15,35]]
 *     """
 *     return _register_user_defined_function(get_register_aggregate_function(),             # <<<<<<<<<<<<<<
 *                                            func, function_name, function_doc, in_types,
 *                                            out_type, func_registry)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_register_user_defined_function); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __pyx_f_7pyarrow_8_compute_get_register_aggregate_function(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);

  /* "pyarrow/_compute.pyx":3302
 *     return _register_user_defined_function(get_register_aggregate_function(),
 *                                            func, function_name, function_doc, in_types,
 *                                            out_type, func_registry)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_5 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_5 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[8] = {__pyx_t_2, __pyx_t_4, __pyx_v_func, __pyx_v_function_name, __pyx_v_function_doc, __pyx_v_in_types, __pyx_v_out_type, __pyx_v_func_registry};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (8-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3216
 * 
 * 
 * def register_aggregate_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                                 func_registry=None):
 *     """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pyarrow._compute.register_aggregate_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3305
 * 
 * 
 * def register_tabular_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                               func_registry=None):
 *     """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_27register_tabular_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_26register_tabular_function, "register_tabular_function(func, function_name, function_doc, in_types, out_type, func_registry=None)\n\nRegister a user-defined tabular function.\n\nThis API is EXPERIMENTAL.\n\nA tabular function is one accepting a context argument of type\nUdfContext and returning a generator of struct arrays.\nThe in_types argument must be empty and the out_type argument\nspecifies a schema. Each struct array must have field types\ncorresponding to the schema.\n\nParameters\n----------\nfunc : callable\n    A callable implementing the user-defined function.\n    The only argument is the context argument of type\n    UdfContext. It must return a callable that\n    returns on each invocation a StructArray matching\n    the out_type, where an empty array indicates end.\nfunction_name : str\n    Name of the function. There should only be one function\n    registered with this name in the function registry.\nfunction_doc : dict\n    A dictionary object with keys \"summary\" (str),\n    and \"description\" (str).\nin_types : Dict[str, DataType]\n    Must be an empty dictionary (reserved for future use).\nout_type : Union[Schema, DataType]\n    Schema of the function's output, or a corresponding flat struct type.\nfunc_registry : FunctionRegistry\n    Optional function registry to use instead of the default global one.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_27register_tabular_function = {"register_tabular_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_27register_tabular_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_26register_tabular_function};
static PyObject *__pyx_pw_7pyarrow_8_compute_27register_tabular_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_func = 0;
  PyObject *__pyx_v_function_name = 0;
  PyObject *__pyx_v_function_doc = 0;
  PyObject *__pyx_v_in_types = 0;
  PyObject *__pyx_v_out_type = 0;
  PyObject *__pyx_v_func_registry = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[6] = {0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("register_tabular_function (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_function_doc,&__pyx_mstate_global->__pyx_n_u_in_types,&__pyx_mstate_global->__pyx_n_u_out_type,&__pyx_mstate_global->__pyx_n_u_func_registry,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 3305, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 3305, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 3305, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 3305, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3305, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3305, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3305, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "register_tabular_function", 0) < (0)) __PYX_ERR(0, 3305, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":3306
 * 
 * def register_tabular_function(func, function_name, function_doc, in_types, out_type,
 *                               func_registry=None):             # <<<<<<<<<<<<<<
 *     """
 *     Register a user-defined tabular function.
*/
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 5; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("register_tabular_function", 0, 5, 6, i); __PYX_ERR(0, 3305, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 3305, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 3305, __pyx_L3_error)
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 3305, __pyx_L3_error)
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3305, __pyx_L3_error)
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3305, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3305, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_func = values[0];
    __pyx_v_function_name = values[1];
    __pyx_v_function_doc = values[2];
    __pyx_v_in_types = values[3];
    __pyx_v_out_type = values[4];
    __pyx_v_func_registry = values[5];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("register_tabular_function", 0, 5, 6, __pyx_nargs); __PYX_ERR(0, 3305, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.register_tabular_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_26register_tabular_function(__pyx_self, __pyx_v_func, __pyx_v_function_name, __pyx_v_function_doc, __pyx_v_in_types, __pyx_v_out_type, __pyx_v_func_registry);

  /* "pyarrow/_compute.pyx":3305
 * 
 * 
 * def register_tabular_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                               func_registry=None):
 *     """
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_26register_tabular_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func, PyObject *__pyx_v_function_name, PyObject *__pyx_v_function_doc, PyObject *__pyx_v_in_types, PyObject *__pyx_v_out_type, PyObject *__pyx_v_func_registry) {
  std::shared_ptr< arrow::Schema>  __pyx_v_c_schema;
  std::shared_ptr< arrow::DataType>  __pyx_v_c_type;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  std::shared_ptr< arrow::Schema>  __pyx_t_2;
  std::shared_ptr< arrow::StructType>  __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  size_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("register_tabular_function", 0);
  __Pyx_INCREF(__pyx_v_out_type);

  /* "pyarrow/_compute.pyx":3343
 *         shared_ptr[CDataType] c_type
 * 
 *     if isinstance(out_type, Schema):             # <<<<<<<<<<<<<<
 *         c_schema = pyarrow_unwrap_schema(out_type)
 *         with nogil:
*/
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_out_type, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_Schema); 
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":3344
 * 
 *     if isinstance(out_type, Schema):
 *         c_schema = pyarrow_unwrap_schema(out_type)             # <<<<<<<<<<<<<<
 *         with nogil:
 *             c_type = <shared_ptr[CDataType]>make_shared[CStructType](deref(c_schema).fields())
*/
    __pyx_t_2 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_schema(__pyx_v_out_type); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3344, __pyx_L1_error)
    __pyx_v_c_schema = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_2);

    /* "pyarrow/_compute.pyx":3345
 *     if isinstance(out_type, Schema):
 *         c_schema = pyarrow_unwrap_schema(out_type)
 *         with nogil:             # <<<<<<<<<<<<<<
 *             c_type = <shared_ptr[CDataType]>make_shared[CStructType](deref(c_schema).fields())
 *         out_type = pyarrow_wrap_data_type(c_type)
*/
    {
        PyThreadState * _save;
        _save = PyEval_SaveThread();
        __Pyx_FastGIL_Remember();
        /*try:*/ {

          /* "pyarrow/_compute.pyx":3346
 *         c_schema = pyarrow_unwrap_schema(out_type)
 *         with nogil:
 *             c_type = <shared_ptr[CDataType]>make_shared[CStructType](deref(c_schema).fields())             # <<<<<<<<<<<<<<
 *         out_type = pyarrow_wrap_data_type(c_type)
 *     return _register_user_defined_function(get_register_tabular_function(),
*/
          try {
            __pyx_t_3 = std::make_shared< arrow::StructType>((*__pyx_v_c_schema).fields());
          } catch(...) {
            PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
            __Pyx_CppExn2PyErr();
            __Pyx_PyGILState_Release(__pyx_gilstate_save);
            __PYX_ERR(0, 3346, __pyx_L5_error)
          }
          __pyx_v_c_type = ((std::shared_ptr< arrow::DataType> )__pyx_t_3);
        }

        /* "pyarrow/_compute.pyx":3345
 *     if isinstance(out_type, Schema):
 *         c_schema = pyarrow_unwrap_schema(out_type)
 *         with nogil:             # <<<<<<<<<<<<<<
 *             c_type = <shared_ptr[CDataType]>make_shared[CStructType](deref(c_schema).fields())
 *         out_type = pyarrow_wrap_data_type(c_type)
*/
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_FastGIL_Forget();
            PyEval_RestoreThread(_save);
            goto __pyx_L6;
          }
          __pyx_L5_error: {
            __Pyx_FastGIL_Forget();
            PyEval_RestoreThread(_save);
            goto __pyx_L1_error;
          }
          __pyx_L6:;
        }
    }

    /* "pyarrow/_compute.pyx":3347
 *         with nogil:
 *             c_type = <shared_ptr[CDataType]>make_shared[CStructType](deref(c_schema).fields())
 *         out_type = pyarrow_wrap_data_type(c_type)             # <<<<<<<<<<<<<<
 *     return _register_user_defined_function(get_register_tabular_function(),
 *                                            func, function_name, function_doc, in_types,
*/
    __pyx_t_4 = __pyx_f_7pyarrow_3lib_pyarrow_wrap_data_type(__pyx_v_c_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3347, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF_SET(__pyx_v_out_type, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "pyarrow/_compute.pyx":3343
 *         shared_ptr[CDataType] c_type
 * 
 *     if isinstance(out_type, Schema):             # <<<<<<<<<<<<<<
 *         c_schema = pyarrow_unwrap_schema(out_type)
 *         with nogil:
*/
  }

  /* "pyarrow/_compute.pyx":3348
 *             c_type = <shared_ptr[CDataType]>make_shared[CStructType](deref(c_schema).fields())
 *         out_type = pyarrow_wrap_data_type(c_type)
 *     return _register_user_defined_function(get_register_tabular_function(),             # <<<<<<<<<<<<<<
 *                                            func, function_name, function_doc, in_types,
 *                                            out_type, func_registry)
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_register_user_defined_function); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __pyx_f_7pyarrow_8_compute_get_register_tabular_function(); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);

  /* "pyarrow/_compute.pyx":3350
 *     return _register_user_defined_function(get_register_tabular_function(),
 *                                            func, function_name, function_doc, in_types,
 *                                            out_type, func_registry)             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_8 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
    assert(__pyx_t_5);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
    __pyx_t_8 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[8] = {__pyx_t_5, __pyx_t_7, __pyx_v_func, __pyx_v_function_name, __pyx_v_function_doc, __pyx_v_in_types, __pyx_v_out_type, __pyx_v_func_registry};
    __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (8-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3348, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3305
 * 
 * 
 * def register_tabular_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                               func_registry=None):
 *     """
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pyarrow._compute.register_tabular_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_out_type);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3353
 * 
 * 
 * def _register_user_defined_function(register_func, func, function_name, function_doc, in_types,             # <<<<<<<<<<<<<<
 *                                     out_type, func_registry=None):
 *     """
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_29_register_user_defined_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_28_register_user_defined_function, "_register_user_defined_function(register_func, func, function_name, function_doc, in_types, out_type, func_registry=None)\n\nRegister a user-defined function.\n\nThis method itself doesn't care about the type of the UDF\n(i.e., scalar vs tabular vs aggregate)\n\nParameters\n----------\nregister_func: object\n    An object holding a CRegisterUdf in a \"register_func\" attribute.\nfunc : callable\n    A callable implementing the user-defined function.\nfunction_name : str\n    Name of the function. There should only be one function\n    registered with this name in the function registry.\nfunction_doc : dict\n    A dictionary object with keys \"summary\" (str),\n    and \"description\" (str).\nin_types : Dict[str, DataType]\n    A dictionary mapping function argument names to\n    their respective DataType.\nout_type : DataType\n    Output type of the function.\nfunc_registry : FunctionRegistry\n    Optional function registry to use instead of the default global one.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_29_register_user_defined_function = {"_register_user_defined_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_29_register_user_defined_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_28_register_user_defined_function};
static PyObject *__pyx_pw_7pyarrow_8_compute_29_register_user_defined_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_register_func = 0;
  PyObject *__pyx_v_func = 0;
  PyObject *__pyx_v_function_name = 0;
  PyObject *__pyx_v_function_doc = 0;
  PyObject *__pyx_v_in_types = 0;
  PyObject *__pyx_v_out_type = 0;
  PyObject *__pyx_v_func_registry = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[7] = {0,0,0,0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_register_user_defined_function (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_register_func,&__pyx_mstate_global->__pyx_n_u_func,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_function_doc,&__pyx_mstate_global->__pyx_n_u_in_types,&__pyx_mstate_global->__pyx_n_u_out_type,&__pyx_mstate_global->__pyx_n_u_func_registry,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 3353, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  7:
        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 3353, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 3353, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  5:
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 3353, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  4:
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 3353, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3353, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3353, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3353, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_register_user_defined_function", 0) < (0)) __PYX_ERR(0, 3353, __pyx_L3_error)

      /* "pyarrow/_compute.pyx":3354
 * 
 * def _register_user_defined_function(register_func, func, function_name, function_doc, in_types,
 *                                     out_type, func_registry=None):             # <<<<<<<<<<<<<<
 *     """
 *     Register a user-defined function.
*/
      if (!values[6]) values[6] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 6; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_register_user_defined_function", 0, 6, 7, i); __PYX_ERR(0, 3353, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  7:
        values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 3353, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  6:
        values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 3353, __pyx_L3_error)
        values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 3353, __pyx_L3_error)
        values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 3353, __pyx_L3_error)
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3353, __pyx_L3_error)
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3353, __pyx_L3_error)
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3353, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[6]) values[6] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_register_func = values[0];
    __pyx_v_func = values[1];
    __pyx_v_function_name = values[2];
    __pyx_v_function_doc = values[3];
    __pyx_v_in_types = values[4];
    __pyx_v_out_type = values[5];
    __pyx_v_func_registry = values[6];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_register_user_defined_function", 0, 6, 7, __pyx_nargs); __PYX_ERR(0, 3353, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute._register_user_defined_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_28_register_user_defined_function(__pyx_self, __pyx_v_register_func, __pyx_v_func, __pyx_v_function_name, __pyx_v_function_doc, __pyx_v_in_types, __pyx_v_out_type, __pyx_v_func_registry);

  /* "pyarrow/_compute.pyx":3353
 * 
 * 
 * def _register_user_defined_function(register_func, func, function_name, function_doc, in_types,             # <<<<<<<<<<<<<<
 *                                     out_type, func_registry=None):
 *     """
*/

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_28_register_user_defined_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_register_func, PyObject *__pyx_v_func, PyObject *__pyx_v_function_name, PyObject *__pyx_v_function_doc, PyObject *__pyx_v_in_types, PyObject *__pyx_v_out_type, PyObject *__pyx_v_func_registry) {
  __pyx_t_7pyarrow_8_compute_CRegisterUdf __pyx_v_c_register_func;
  std::string __pyx_v_c_func_name;
   arrow::compute::Arity __pyx_v_c_arity;
   arrow::compute::FunctionDoc __pyx_v_c_func_doc;
  std::vector<std::shared_ptr< arrow::DataType> >  __pyx_v_c_in_types;
  PyObject *__pyx_v_c_function;
  std::shared_ptr< arrow::DataType>  __pyx_v_c_out_type;
   arrow::py::UdfOptions __pyx_v_c_options;
   arrow::compute::FunctionRegistry *__pyx_v_c_func_registry;
  PyObject *__pyx_v_func_spec = NULL;
  Py_ssize_t __pyx_v_num_args;
  PyObject *__pyx_v_in_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  std::string __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  Py_ssize_t __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  int __pyx_t_10;
  int __pyx_t_11;
  std::shared_ptr< arrow::DataType>  __pyx_t_12;
  bool __pyx_t_13;
   arrow::compute::FunctionDoc __pyx_t_14;
   arrow::compute::FunctionRegistry *__pyx_t_15;
  __pyx_t_7pyarrow_8_compute_CRegisterUdf __pyx_t_16;
  arrow::Status __pyx_t_17;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_register_user_defined_function", 0);

  /* "pyarrow/_compute.pyx":3392
 *         CFunctionRegistry* c_func_registry
 * 
 *     if callable(func):             # <<<<<<<<<<<<<<
 *         c_function = <PyObject*>func
 *     else:
*/
  __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_func); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 3392, __pyx_L1_error)
  if (likely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":3393
 * 
 *     if callable(func):
 *         c_function = <PyObject*>func             # <<<<<<<<<<<<<<
 *     else:
 *         raise TypeError("func must be a callable")
*/
    __pyx_v_c_function = ((PyObject *)__pyx_v_func);

    /* "pyarrow/_compute.pyx":3392
 *         CFunctionRegistry* c_func_registry
 * 
 *     if callable(func):             # <<<<<<<<<<<<<<
 *         c_function = <PyObject*>func
 *     else:
*/
    goto __pyx_L3;
  }

  /* "pyarrow/_compute.pyx":3395
 *         c_function = <PyObject*>func
 *     else:
 *         raise TypeError("func must be a callable")             # <<<<<<<<<<<<<<
 * 
 *     c_func_name = tobytes(function_name)
*/
  /*else*/ {
    __pyx_t_3 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_func_must_be_a_callable};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 3395, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "pyarrow/_compute.pyx":3397
 *         raise TypeError("func must be a callable")
 * 
 *     c_func_name = tobytes(function_name)             # <<<<<<<<<<<<<<
 * 
 *     func_spec = inspect.getfullargspec(func)
*/
  __pyx_t_3 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
    assert(__pyx_t_3);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_function_name};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3397, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_t_6 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3397, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_func_name = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_6);

  /* "pyarrow/_compute.pyx":3399
 *     c_func_name = tobytes(function_name)
 * 
 *     func_spec = inspect.getfullargspec(func)             # <<<<<<<<<<<<<<
 *     num_args = -1
 *     if isinstance(in_types, dict):
*/
  __pyx_t_5 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_inspect); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_getfullargspec); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
    assert(__pyx_t_5);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_func};
    __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3399, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v_func_spec = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":3400
 * 
 *     func_spec = inspect.getfullargspec(func)
 *     num_args = -1             # <<<<<<<<<<<<<<
 *     if isinstance(in_types, dict):
 *         for in_type in in_types.values():
*/
  __pyx_v_num_args = -1L;

  /* "pyarrow/_compute.pyx":3401
 *     func_spec = inspect.getfullargspec(func)
 *     num_args = -1
 *     if isinstance(in_types, dict):             # <<<<<<<<<<<<<<
 *         for in_type in in_types.values():
 *             c_in_types.push_back(
*/
  __pyx_t_1 = PyDict_Check(__pyx_v_in_types); 
  if (likely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":3402
 *     num_args = -1
 *     if isinstance(in_types, dict):
 *         for in_type in in_types.values():             # <<<<<<<<<<<<<<
 *             c_in_types.push_back(
 *                 pyarrow_unwrap_data_type(ensure_type(in_type)))
*/
    __pyx_t_8 = 0;
    if (unlikely(__pyx_v_in_types == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
      __PYX_ERR(0, 3402, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_dict_iterator(__pyx_v_in_types, 0, __pyx_mstate_global->__pyx_n_u_values, (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3402, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_2);
    __pyx_t_2 = __pyx_t_7;
    __pyx_t_7 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_9, &__pyx_t_8, NULL, &__pyx_t_7, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 3402, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_XDECREF_SET(__pyx_v_in_type, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "pyarrow/_compute.pyx":3404
 *         for in_type in in_types.values():
 *             c_in_types.push_back(
 *                 pyarrow_unwrap_data_type(ensure_type(in_type)))             # <<<<<<<<<<<<<<
 *         function_doc["arg_names"] = in_types.keys()
 *         num_args = len(in_types)
*/
      __pyx_t_7 = ((PyObject *)__pyx_f_7pyarrow_3lib_ensure_type(__pyx_v_in_type, 0, NULL)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3404, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_12 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_data_type(__pyx_t_7); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3404, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "pyarrow/_compute.pyx":3403
 *     if isinstance(in_types, dict):
 *         for in_type in in_types.values():
 *             c_in_types.push_back(             # <<<<<<<<<<<<<<
 *                 pyarrow_unwrap_data_type(ensure_type(in_type)))
 *         function_doc["arg_names"] = in_types.keys()
*/
      try {
        __pyx_v_c_in_types.push_back(__pyx_t_12);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 3403, __pyx_L1_error)
      }
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "pyarrow/_compute.pyx":3405
 *             c_in_types.push_back(
 *                 pyarrow_unwrap_data_type(ensure_type(in_type)))
 *         function_doc["arg_names"] = in_types.keys()             # <<<<<<<<<<<<<<
 *         num_args = len(in_types)
 *     else:
*/
    __pyx_t_7 = __pyx_v_in_types;
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_4 = 0;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
      __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3405, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    if (unlikely((PyObject_SetItem(__pyx_v_function_doc, __pyx_mstate_global->__pyx_n_u_arg_names, __pyx_t_2) < 0))) __PYX_ERR(0, 3405, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "pyarrow/_compute.pyx":3406
 *                 pyarrow_unwrap_data_type(ensure_type(in_type)))
 *         function_doc["arg_names"] = in_types.keys()
 *         num_args = len(in_types)             # <<<<<<<<<<<<<<
 *     else:
 *         raise TypeError(
*/
    __pyx_t_9 = PyObject_Length(__pyx_v_in_types); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3406, __pyx_L1_error)
    __pyx_v_num_args = __pyx_t_9;

    /* "pyarrow/_compute.pyx":3401
 *     func_spec = inspect.getfullargspec(func)
 *     num_args = -1
 *     if isinstance(in_types, dict):             # <<<<<<<<<<<<<<
 *         for in_type in in_types.values():
 *             c_in_types.push_back(
*/
    goto __pyx_L4;
  }

  /* "pyarrow/_compute.pyx":3408
 *         num_args = len(in_types)
 *     else:
 *         raise TypeError(             # <<<<<<<<<<<<<<
 *             "in_types must be a dictionary of DataType")
 * 
*/
  /*else*/ {
    __pyx_t_7 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_in_types_must_be_a_dictionary_of};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3408, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 3408, __pyx_L1_error)
  }
  __pyx_L4:;

  /* "pyarrow/_compute.pyx":3411
 *             "in_types must be a dictionary of DataType")
 * 
 *     c_arity = CArity(<int> num_args, func_spec.varargs)             # <<<<<<<<<<<<<<
 * 
 *     if "summary" not in function_doc:
*/
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_func_spec, __pyx_mstate_global->__pyx_n_u_varargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3411, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_13 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 3411, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_arity =  arrow::compute::Arity(((int)__pyx_v_num_args), __pyx_t_13);

  /* "pyarrow/_compute.pyx":3413
 *     c_arity = CArity(<int> num_args, func_spec.varargs)
 * 
 *     if "summary" not in function_doc:             # <<<<<<<<<<<<<<
 *         raise ValueError("Function doc must contain a summary")
 * 
*/
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_summary, __pyx_v_function_doc, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 3413, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":3414
 * 
 *     if "summary" not in function_doc:
 *         raise ValueError("Function doc must contain a summary")             # <<<<<<<<<<<<<<
 * 
 *     if "description" not in function_doc:
*/
    __pyx_t_7 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_Function_doc_must_contain_a_summ};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3414, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 3414, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":3413
 *     c_arity = CArity(<int> num_args, func_spec.varargs)
 * 
 *     if "summary" not in function_doc:             # <<<<<<<<<<<<<<
 *         raise ValueError("Function doc must contain a summary")
 * 
*/
  }

  /* "pyarrow/_compute.pyx":3416
 *         raise ValueError("Function doc must contain a summary")
 * 
 *     if "description" not in function_doc:             # <<<<<<<<<<<<<<
 *         raise ValueError("Function doc must contain a description")
 * 
*/
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_description, __pyx_v_function_doc, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 3416, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":3417
 * 
 *     if "description" not in function_doc:
 *         raise ValueError("Function doc must contain a description")             # <<<<<<<<<<<<<<
 * 
 *     if "arg_names" not in function_doc:
*/
    __pyx_t_7 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_Function_doc_must_contain_a_desc};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3417, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 3417, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":3416
 *         raise ValueError("Function doc must contain a summary")
 * 
 *     if "description" not in function_doc:             # <<<<<<<<<<<<<<
 *         raise ValueError("Function doc must contain a description")
 * 
*/
  }

  /* "pyarrow/_compute.pyx":3419
 *         raise ValueError("Function doc must contain a description")
 * 
 *     if "arg_names" not in function_doc:             # <<<<<<<<<<<<<<
 *         raise ValueError("Function doc must contain arg_names")
 * 
*/
  __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_arg_names, __pyx_v_function_doc, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 3419, __pyx_L1_error)
  if (unlikely(__pyx_t_1)) {

    /* "pyarrow/_compute.pyx":3420
 * 
 *     if "arg_names" not in function_doc:
 *         raise ValueError("Function doc must contain arg_names")             # <<<<<<<<<<<<<<
 * 
 *     c_func_doc = _make_function_doc(function_doc)
*/
    __pyx_t_7 = NULL;
    __pyx_t_4 = 1;
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_Function_doc_must_contain_arg_na};
      __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3420, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 3420, __pyx_L1_error)

    /* "pyarrow/_compute.pyx":3419
 *         raise ValueError("Function doc must contain a description")
 * 
 *     if "arg_names" not in function_doc:             # <<<<<<<<<<<<<<
 *         raise ValueError("Function doc must contain arg_names")
 * 
*/
  }

  /* "pyarrow/_compute.pyx":3422
 *         raise ValueError("Function doc must contain arg_names")
 * 
 *     c_func_doc = _make_function_doc(function_doc)             # <<<<<<<<<<<<<<
 * 
 *     c_out_type = pyarrow_unwrap_data_type(ensure_type(out_type))
*/
  __pyx_t_2 = __pyx_v_function_doc;
  __Pyx_INCREF(__pyx_t_2);
  if (!(likely(PyDict_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_2))) __PYX_ERR(0, 3422, __pyx_L1_error)
  __pyx_t_14 = __pyx_f_7pyarrow_8_compute__make_function_doc(((PyObject*)__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3422, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_func_doc = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_14);

  /* "pyarrow/_compute.pyx":3424
 *     c_func_doc = _make_function_doc(function_doc)
 * 
 *     c_out_type = pyarrow_unwrap_data_type(ensure_type(out_type))             # <<<<<<<<<<<<<<
 * 
 *     c_options.func_name = c_func_name
*/
  __pyx_t_2 = ((PyObject *)__pyx_f_7pyarrow_3lib_ensure_type(__pyx_v_out_type, 0, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __pyx_f_7pyarrow_3lib_pyarrow_unwrap_data_type(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3424, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c_out_type = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_12);

  /* "pyarrow/_compute.pyx":3426
 *     c_out_type = pyarrow_unwrap_data_type(ensure_type(out_type))
 * 
 *     c_options.func_name = c_func_name             # <<<<<<<<<<<<<<
 *     c_options.arity = c_arity
 *     c_options.func_doc = c_func_doc
*/
  __pyx_v_c_options.func_name = __pyx_v_c_func_name;

  /* "pyarrow/_compute.pyx":3427
 * 
 *     c_options.func_name = c_func_name
 *     c_options.arity = c_arity             # <<<<<<<<<<<<<<
 *     c_options.func_doc = c_func_doc
 *     c_options.input_types = c_in_types
*/
  __pyx_v_c_options.arity = __pyx_v_c_arity;

  /* "pyarrow/_compute.pyx":3428
 *     c_options.func_name = c_func_name
 *     c_options.arity = c_arity
 *     c_options.func_doc = c_func_doc             # <<<<<<<<<<<<<<
 *     c_options.input_types = c_in_types
 *     c_options.output_type = c_out_type
*/
  __pyx_v_c_options.func_doc = __pyx_v_c_func_doc;

  /* "pyarrow/_compute.pyx":3429
 *     c_options.arity = c_arity
 *     c_options.func_doc = c_func_doc
 *     c_options.input_types = c_in_types             # <<<<<<<<<<<<<<
 *     c_options.output_type = c_out_type
 * 
*/
  __pyx_v_c_options.input_types = __pyx_v_c_in_types;

  /* "pyarrow/_compute.pyx":3430
 *     c_options.func_doc = c_func_doc
 *     c_options.input_types = c_in_types
 *     c_options.output_type = c_out_type             # <<<<<<<<<<<<<<
 * 
 *     if func_registry is None:
*/
  __pyx_v_c_options.output_type = __pyx_v_c_out_type;

  /* "pyarrow/_compute.pyx":3432
 *     c_options.output_type = c_out_type
 * 
 *     if func_registry is None:             # <<<<<<<<<<<<<<
 *         c_func_registry = NULL
 *     else:
*/
  __pyx_t_1 = (__pyx_v_func_registry == Py_None);
  if (__pyx_t_1) {

    /* "pyarrow/_compute.pyx":3433
 * 
 *     if func_registry is None:
 *         c_func_registry = NULL             # <<<<<<<<<<<<<<
 *     else:
 *         c_func_registry = (<FunctionRegistry>func_registry).registry
*/
    __pyx_v_c_func_registry = NULL;

    /* "pyarrow/_compute.pyx":3432
 *     c_options.output_type = c_out_type
 * 
 *     if func_registry is None:             # <<<<<<<<<<<<<<
 *         c_func_registry = NULL
 *     else:
*/
    goto __pyx_L10;
  }

  /* "pyarrow/_compute.pyx":3435
 *         c_func_registry = NULL
 *     else:
 *         c_func_registry = (<FunctionRegistry>func_registry).registry             # <<<<<<<<<<<<<<
 * 
 *     c_register_func = (<RegisterUdf>register_func).register_func
*/
  /*else*/ {
    __pyx_t_15 = ((struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *)__pyx_v_func_registry)->registry;
    __pyx_v_c_func_registry = __pyx_t_15;
  }
  __pyx_L10:;

  /* "pyarrow/_compute.pyx":3437
 *         c_func_registry = (<FunctionRegistry>func_registry).registry
 * 
 *     c_register_func = (<RegisterUdf>register_func).register_func             # <<<<<<<<<<<<<<
 * 
 *     check_status(c_register_func(c_function,
*/
  __pyx_t_16 = ((struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *)__pyx_v_register_func)->register_func;
  __pyx_v_c_register_func = __pyx_t_16;

  /* "pyarrow/_compute.pyx":3439
 *     c_register_func = (<RegisterUdf>register_func).register_func
 * 
 *     check_status(c_register_func(c_function,             # <<<<<<<<<<<<<<
 *                                  <function[CallbackUdf]> &_udf_callback,
 *                                  c_options, c_func_registry))
*/
  __pyx_t_17 = __pyx_v_c_register_func(__pyx_v_c_function, ((std::function<__pyx_t_7pyarrow_8includes_8libarrow_CallbackUdf> )(&__pyx_f_7pyarrow_8_compute__udf_callback)), __pyx_v_c_options, __pyx_v_c_func_registry); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3439, __pyx_L1_error)
  __pyx_t_10 = __pyx_f_7pyarrow_3lib_check_status(__pyx_t_17); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 3439, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":3353
 * 
 * 
 * def _register_user_defined_function(register_func, func, function_name, function_doc, in_types,             # <<<<<<<<<<<<<<
 *                                     out_type, func_registry=None):
 *     """
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pyarrow._compute._register_user_defined_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_func_spec);
  __Pyx_XDECREF(__pyx_v_in_type);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pyarrow/_compute.pyx":3444
 * 
 * 
 * def call_tabular_function(function_name, args=None, func_registry=None):             # <<<<<<<<<<<<<<
 *     """
 *     Get a record batch iterator from a tabular function.
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_31call_tabular_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_30call_tabular_function, "call_tabular_function(function_name, args=None, func_registry=None)\n\nGet a record batch iterator from a tabular function.\n\nParameters\n----------\nfunction_name : str\n    Name of the function.\nargs : iterable\n    The arguments to pass to the function.  Accepted types depend\n    on the specific function.  Currently, only an empty args is supported.\nfunc_registry : FunctionRegistry\n    Optional function registry to use instead of the default global one.");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_31call_tabular_function = {"call_tabular_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_31call_tabular_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_30call_tabular_function};
static PyObject *__pyx_pw_7pyarrow_8_compute_31call_tabular_function(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_function_name = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_func_registry = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("call_tabular_function (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_args,&__pyx_mstate_global->__pyx_n_u_func_registry,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 3444, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3444, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3444, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3444, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "call_tabular_function", 0) < (0)) __PYX_ERR(0, 3444, __pyx_L3_error)
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
      for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("call_tabular_function", 0, 1, 3, i); __PYX_ERR(0, 3444, __pyx_L3_error) }
      }
    } else {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 3444, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 3444, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 3444, __pyx_L3_error)
        break;
        default: goto __pyx_L5_argtuple_error;
      }
      if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None));
      if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
    }
    __pyx_v_function_name = values[0];
    __pyx_v_args = values[1];
    __pyx_v_func_registry = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("call_tabular_function", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 3444, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.call_tabular_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_7pyarrow_8_compute_30call_tabular_function(__pyx_self, __pyx_v_function_name, __pyx_v_args, __pyx_v_func_registry);

  /* function exit code */
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_30call_tabular_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_args, PyObject *__pyx_v_func_registry) {
  std::string __pyx_v_c_func_name;
  std::vector< arrow::Datum>  __pyx_v_c_args;
   arrow::compute::FunctionRegistry *__pyx_v_c_func_registry;
  std::shared_ptr< arrow::RecordBatchReader>  __pyx_v_c_reader;
  struct __pyx_obj_7pyarrow_3lib_RecordBatchReader *__pyx_v_reader = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  std::string __pyx_t_5;
  int __pyx_t_6;
   arrow::compute::FunctionRegistry *__pyx_t_7;
  std::shared_ptr< arrow::RecordBatchReader>  __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("call_tabular_function", 0);
  __Pyx_INCREF(__pyx_v_args);

  /* "pyarrow/_compute.pyx":3465
 *         RecordBatchReader reader
 * 
 *     c_func_name = tobytes(function_name)             # <<<<<<<<<<<<<<
 *     if func_registry is None:
 *         c_func_registry = NULL
*/
  __pyx_t_2 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_tobytes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = 1;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    assert(__pyx_t_2);
    PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx__function);
    __Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
    __pyx_t_4 = 0;
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_function_name};
    __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3465, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_t_5 = __pyx_convert_string_from_py_6libcpp_6string_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3465, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_c_func_name = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_5);

  /* "pyarrow/_compute.pyx":3466
 * 
 *     c_func_name = tobytes(function_name)
 *     if func_registry is None:             # <<<<<<<<<<<<<<
 *         c_func_registry = NULL
 *     else:
*/
  __pyx_t_6 = (__pyx_v_func_registry == Py_None);
  if (__pyx_t_6) {

    /* "pyarrow/_compute.pyx":3467
 *     c_func_name = tobytes(function_name)
 *     if func_registry is None:
 *         c_func_registry = NULL             # <<<<<<<<<<<<<<
 *     else:
 *         c_func_registry = (<FunctionRegistry>func_registry).registry
*/
    __pyx_v_c_func_registry = NULL;

    /* "pyarrow/_compute.pyx":3466
 * 
 *     c_func_name = tobytes(function_name)
 *     if func_registry is None:             # <<<<<<<<<<<<<<
 *         c_func_registry = NULL
 *     else:
*/
    goto __pyx_L3;
  }

  /* "pyarrow/_compute.pyx":3469
 *         c_func_registry = NULL
 *     else:
 *         c_func_registry = (<FunctionRegistry>func_registry).registry             # <<<<<<<<<<<<<<
 *     if args is None:
 *         args = []
*/
  /*else*/ {
    __pyx_t_7 = ((struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *)__pyx_v_func_registry)->registry;
    __pyx_v_c_func_registry = __pyx_t_7;
  }
  __pyx_L3:;

  /* "pyarrow/_compute.pyx":3470
 *     else:
 *         c_func_registry = (<FunctionRegistry>func_registry).registry
 *     if args is None:             # <<<<<<<<<<<<<<
 *         args = []
 *     _pack_compute_args(args, &c_args)
*/
  __pyx_t_6 = (__pyx_v_args == Py_None);
  if (__pyx_t_6) {

    /* "pyarrow/_compute.pyx":3471
 *         c_func_registry = (<FunctionRegistry>func_registry).registry
 *     if args is None:
 *         args = []             # <<<<<<<<<<<<<<
 *     _pack_compute_args(args, &c_args)
 * 
*/
    __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "pyarrow/_compute.pyx":3470
 *     else:
 *         c_func_registry = (<FunctionRegistry>func_registry).registry
 *     if args is None:             # <<<<<<<<<<<<<<
 *         args = []
 *     _pack_compute_args(args, &c_args)
*/
  }

  /* "pyarrow/_compute.pyx":3472
 *     if args is None:
 *         args = []
 *     _pack_compute_args(args, &c_args)             # <<<<<<<<<<<<<<
 * 
 *     with nogil:
*/
  __pyx_t_1 = __pyx_f_7pyarrow_8_compute__pack_compute_args(__pyx_v_args, (&__pyx_v_c_args)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":3474
 *     _pack_compute_args(args, &c_args)
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         c_reader = GetResultValue(CallTabularFunction(
 *             c_func_name, c_args, c_func_registry))
*/
  {
      PyThreadState * _save;
      _save = PyEval_SaveThread();
      __Pyx_FastGIL_Remember();
      /*try:*/ {

        /* "pyarrow/_compute.pyx":3475
 * 
 *     with nogil:
 *         c_reader = GetResultValue(CallTabularFunction(             # <<<<<<<<<<<<<<
 *             c_func_name, c_args, c_func_registry))
 *     reader = RecordBatchReader.__new__(RecordBatchReader)
*/
        __pyx_t_8 = arrow::py::GetResultValue<std::shared_ptr< arrow::RecordBatchReader> >(arrow::py::CallTabularFunction(__pyx_v_c_func_name, __pyx_v_c_args, __pyx_v_c_func_registry)); if (unlikely(__Pyx_ErrOccurredWithGIL())) __PYX_ERR(0, 3475, __pyx_L6_error)
        __pyx_v_c_reader = __PYX_STD_MOVE_IF_SUPPORTED(__pyx_t_8);
      }

      /* "pyarrow/_compute.pyx":3474
 *     _pack_compute_args(args, &c_args)
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         c_reader = GetResultValue(CallTabularFunction(
 *             c_func_name, c_args, c_func_registry))
*/
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_FastGIL_Forget();
          PyEval_RestoreThread(_save);
          goto __pyx_L7;
        }
        __pyx_L6_error: {
          __Pyx_FastGIL_Forget();
          PyEval_RestoreThread(_save);
          goto __pyx_L1_error;
        }
        __pyx_L7:;
      }
  }

  /* "pyarrow/_compute.pyx":3477
 *         c_reader = GetResultValue(CallTabularFunction(
 *             c_func_name, c_args, c_func_registry))
 *     reader = RecordBatchReader.__new__(RecordBatchReader)             # <<<<<<<<<<<<<<
 *     reader.reader = c_reader
 *     return RecordBatchReader.from_batches(pyarrow_wrap_schema(deref(c_reader).schema()), reader)
*/
  __pyx_t_1 = __Pyx_tp_new(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_RecordBatchReader), __pyx_mstate_global->__pyx_empty_tuple); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_RecordBatchReader)))) __PYX_ERR(0, 3477, __pyx_L1_error)
  __pyx_v_reader = ((struct __pyx_obj_7pyarrow_3lib_RecordBatchReader *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pyarrow/_compute.pyx":3478
 *             c_func_name, c_args, c_func_registry))
 *     reader = RecordBatchReader.__new__(RecordBatchReader)
 *     reader.reader = c_reader             # <<<<<<<<<<<<<<
 *     return RecordBatchReader.from_batches(pyarrow_wrap_schema(deref(c_reader).schema()), reader)
*/
  __pyx_v_reader->reader = ((arrow::py::SharedPtrNoGIL< arrow::RecordBatchReader> )__pyx_v_c_reader);

  /* "pyarrow/_compute.pyx":3479
 *     reader = RecordBatchReader.__new__(RecordBatchReader)
 *     reader.reader = c_reader
 *     return RecordBatchReader.from_batches(pyarrow_wrap_schema(deref(c_reader).schema()), reader)             # <<<<<<<<<<<<<<
*/
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib_RecordBatchReader);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_2 = __pyx_f_7pyarrow_3lib_pyarrow_wrap_schema((*__pyx_v_c_reader).schema()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_2, ((PyObject *)__pyx_v_reader)};
    __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_from_batches, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
  }
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pyarrow/_compute.pyx":3444
 * 
 * 
 * def call_tabular_function(function_name, args=None, func_registry=None):             # <<<<<<<<<<<<<<
 *     """
 *     Get a record batch iterator from a tabular function.
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.call_tabular_function", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_reader);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Kernel(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
*/

/* Python wrapper */
static PyObject *__pyx_pw_7pyarrow_8_compute_33__pyx_unpickle_Kernel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_7pyarrow_8_compute_32__pyx_unpickle_Kernel, "__pyx_unpickle_Kernel(__pyx_type, long __pyx_checksum, tuple __pyx_state)");
static PyMethodDef __pyx_mdef_7pyarrow_8_compute_33__pyx_unpickle_Kernel = {"__pyx_unpickle_Kernel", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_33__pyx_unpickle_Kernel, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_32__pyx_unpickle_Kernel};
static PyObject *__pyx_pw_7pyarrow_8_compute_33__pyx_unpickle_Kernel(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Kernel (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_SIZE
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_pyx_type,&__pyx_mstate_global->__pyx_n_u_pyx_checksum,&__pyx_mstate_global->__pyx_n_u_pyx_state,0};
    const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
    if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(1, 4, __pyx_L3_error)
    if (__pyx_kwds_len > 0) {
      switch (__pyx_nargs) {
        case  3:
        values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  2:
        values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  1:
        values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
        if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 4, __pyx_L3_error)
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      const Py_ssize_t kwd_pos_args = __pyx_nargs;
      if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__pyx_unpickle_Kernel", 0) < (0)) __PYX_ERR(1, 4, __pyx_L3_error)
      for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
        if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Kernel", 1, 3, 3, i); __PYX_ERR(1, 4, __pyx_L3_error) }
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 4, __pyx_L3_error)
      values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 4, __pyx_L3_error)
      values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
      if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 4, __pyx_L3_error)
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyLong_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 4, __pyx_L3_error)
    __pyx_v___pyx_state = ((PyObject*)values[2]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Kernel", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 4, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __Pyx_AddTraceback("pyarrow._compute.__pyx_unpickle_Kernel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v___pyx_state), (&PyTuple_Type), 1, "__pyx_state", 1))) __PYX_ERR(1, 4, __pyx_L1_error)
  __pyx_r = __pyx_pf_7pyarrow_8_compute_32__pyx_unpickle_Kernel(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  goto __pyx_L7_cleaned_up;
  __pyx_L0:;
  for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
    Py_XDECREF(values[__pyx_temp]);
  }
  __pyx_L7_cleaned_up:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_7pyarrow_8_compute_32__pyx_unpickle_Kernel(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  size_t __pyx_t_4;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Kernel", 0);

  /* "(tree fragment)":6
 * def __pyx_unpickle_Kernel(__pyx_type, long __pyx_checksum, tuple __pyx_state):
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')             # <<<<<<<<<<<<<<
 *     __pyx_result = Kernel.__new__(__pyx_type)
 *     if __pyx_state is not None:
*/
  __pyx_t_1 = __Pyx_CheckUnpickleChecksum(__pyx_v___pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, __pyx_k__3); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 6, __pyx_L1_error)

  /* "(tree fragment)":7
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = Kernel.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Kernel__set_state(<Kernel> __pyx_result, __pyx_state)
*/
  __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel);
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_4 = 0;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v___pyx_type};
    __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
  }
  __pyx_v___pyx_result = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = Kernel.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Kernel__set_state(<Kernel> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  __pyx_t_5 = (__pyx_v___pyx_state != ((PyObject*)Py_None));
  if (__pyx_t_5) {

    /* "(tree fragment)":9
 *     __pyx_result = Kernel.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Kernel__set_state(<Kernel> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Kernel__set_state(Kernel __pyx_result, __pyx_state: tuple):
*/
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "cannot pass None into a C function argument that is declared 'not None'");
      __PYX_ERR(1, 9, __pyx_L1_error)
    }
    __pyx_t_2 = __pyx_f_7pyarrow_8_compute___pyx_unpickle_Kernel__set_state(((struct __pyx_obj_7pyarrow_8_compute_Kernel *)__pyx_v___pyx_result), __pyx_v___pyx_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "(tree fragment)":8
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
 *     __pyx_result = Kernel.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Kernel__set_state(<Kernel> __pyx_result, __pyx_state)
 *     return __pyx_result
*/
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Kernel__set_state(<Kernel> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Kernel__set_state(Kernel __pyx_result, __pyx_state: tuple):
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Kernel(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
*/

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pyarrow._compute.__pyx_unpickle_Kernel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Kernel__set_state(<Kernel> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Kernel__set_state(Kernel __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/

static PyObject *__pyx_f_7pyarrow_8_compute___pyx_unpickle_Kernel__set_state(struct __pyx_obj_7pyarrow_8_compute_Kernel *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Kernel__set_state", 0);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Kernel__set_state(Kernel __pyx_result, __pyx_state: tuple):
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)             # <<<<<<<<<<<<<<
*/
  __pyx_t_1 = __Pyx_UpdateUnpickledDict(((PyObject *)__pyx_v___pyx_result), __pyx_v___pyx_state, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 12, __pyx_L1_error)

  /* "(tree fragment)":11
 *         __pyx_unpickle_Kernel__set_state(<Kernel> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Kernel__set_state(Kernel __pyx_result, __pyx_state: tuple):             # <<<<<<<<<<<<<<
 *     __Pyx_UpdateUnpickledDict(__pyx_result, __pyx_state, 0)
*/

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pyarrow._compute.__pyx_unpickle_Kernel__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* #### Code section: module_exttypes ### */
static struct __pyx_vtabstruct_7pyarrow_8_compute_UdfContext __pyx_vtable_7pyarrow_8_compute_UdfContext;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_UdfContext(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_UdfContext *p;
  PyObject *o = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_new, newfunc)(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_UdfContext *)o);
  p->__pyx_vtab = __pyx_vtabptr_7pyarrow_8_compute_UdfContext;
  __Pyx_default_placement_construct(&(p->c_context));
  return o;
}

static void __pyx_tp_dealloc_7pyarrow_8_compute_UdfContext(PyObject *o) {
  struct __pyx_obj_7pyarrow_8_compute_UdfContext *p = (struct __pyx_obj_7pyarrow_8_compute_UdfContext *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyarrow_8_compute_UdfContext) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->c_context);
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable)) __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_dealloc, destructor)(o); else
  #endif
  __Pyx_call_next_tp_dealloc(o, __pyx_tp_dealloc_7pyarrow_8_compute_UdfContext);
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_10UdfContext_batch_length(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_10UdfContext_12batch_length_1__get__(o);
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_10UdfContext_memory_pool(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_10UdfContext_11memory_pool_1__get__(o);
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute_UdfContext[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10UdfContext_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10UdfContext_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10UdfContext_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10UdfContext_4__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7pyarrow_8_compute_UdfContext[] = {
  {"batch_length", __pyx_getprop_7pyarrow_8_compute_10UdfContext_batch_length, 0, PyDoc_STR("\n        The common length of all input arguments (int).\n\n        In the case that all arguments are scalars, this value\n        is used to pass the \"actual length\" of the arguments,\n        e.g. because the scalar values are encoding a column\n        with a constant value.\n        "), 0},
  {"memory_pool", __pyx_getprop_7pyarrow_8_compute_10UdfContext_memory_pool, 0, PyDoc_STR("\n        A memory pool for allocations (:class:`MemoryPool`).\n\n        This is the memory pool supplied by the user when they invoked\n        the function and it should be used in any calls to arrow that the\n        UDF makes if that call accepts a memory_pool.\n        "), 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_UdfContext_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_UdfContext},
  {Py_tp_doc, (void *)PyDoc_STR("UdfContext()\n\nPer-invocation function context/state.\n\nThis object will always be the first argument to a user-defined\nfunction. It should not be used outside of a call to the function.")},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute_UdfContext},
  {Py_tp_getset, (void *)__pyx_getsets_7pyarrow_8_compute_UdfContext},
  {Py_tp_init, (void *)__pyx_pw_7pyarrow_8_compute_10UdfContext_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_UdfContext},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_UdfContext_spec = {
  "pyarrow._compute.UdfContext",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_UdfContext),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_UdfContext_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_UdfContext = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""UdfContext", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_UdfContext), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_UdfContext, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  PyDoc_STR("UdfContext()\n\nPer-invocation function context/state.\n\nThis object will always be the first argument to a user-defined\nfunction. It should not be used outside of a call to the function."), /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute_UdfContext, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7pyarrow_8_compute_UdfContext, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_7pyarrow_8_compute_10UdfContext_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_UdfContext, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions __pyx_vtable_7pyarrow_8_compute_FunctionOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_FunctionOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *p;
  PyObject *o = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_new, newfunc)(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)o);
  p->__pyx_vtab = __pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  __Pyx_default_placement_construct(&(p->wrapped));
  return o;
}

static void __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions(PyObject *o) {
  struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *p = (struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->wrapped);
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable)) __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_dealloc, destructor)(o); else
  #endif
  __Pyx_call_next_tp_dealloc(o, __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions);
}

static PyObject *__pyx_tp_richcompare_7pyarrow_8_compute_FunctionOptions(PyObject *o1, PyObject *o2, int op) {
  switch (op) {
    case Py_EQ: {
      return __pyx_pw_7pyarrow_8_compute_15FunctionOptions_7__eq__(o1, o2);
    }
    case Py_NE: {
      PyObject *ret;
      ret = __pyx_pw_7pyarrow_8_compute_15FunctionOptions_7__eq__(o1, o2);
      if (likely(ret && ret != Py_NotImplemented)) {
        int b = __Pyx_PyObject_IsTrue(ret);
        Py_DECREF(ret);
        if (unlikely(b < 0)) return NULL;
        ret = (b) ? Py_False : Py_True;
        Py_INCREF(ret);
      }
      return ret;
    }
    default: {
      return __Pyx_NewRef(Py_NotImplemented);
    }
  }
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute_FunctionOptions[] = {
  {"serialize", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15FunctionOptions_1serialize, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15FunctionOptions_serialize},
  {"deserialize", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15FunctionOptions_3deserialize, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15FunctionOptions_2deserialize},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15FunctionOptions_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15FunctionOptions_8__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15FunctionOptions_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15FunctionOptions_10__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_FunctionOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_repr, (void *)__pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__},
  {Py_tp_richcompare, (void *)__pyx_tp_richcompare_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_FunctionOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_FunctionOptions_spec = {
  "pyarrow._compute.FunctionOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_FunctionOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_FunctionOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""FunctionOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  __pyx_tp_richcompare_7pyarrow_8_compute_FunctionOptions, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute_FunctionOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_FunctionOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__SortOptions __pyx_vtable_7pyarrow_8_compute__SortOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__SortOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__SortOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__SortOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__SortOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__SortOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SortOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SortOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SortOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SortOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SortOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SortOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__SortOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__SortOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__SortOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__SortOptions_spec = {
  "pyarrow._compute._SortOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SortOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__SortOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__SortOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_SortOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SortOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__SortOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__SortOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_Expression __pyx_vtable_7pyarrow_8_compute_Expression;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_Expression(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_Expression *p;
  PyObject *o = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_new, newfunc)(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_Expression *)o);
  p->__pyx_vtab = __pyx_vtabptr_7pyarrow_8_compute_Expression;
  __Pyx_default_placement_construct(&(p->expr));
  return o;
}

static void __pyx_tp_dealloc_7pyarrow_8_compute_Expression(PyObject *o) {
  struct __pyx_obj_7pyarrow_8_compute_Expression *p = (struct __pyx_obj_7pyarrow_8_compute_Expression *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyarrow_8_compute_Expression) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->expr);
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable)) __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_dealloc, destructor)(o); else
  #endif
  __Pyx_call_next_tp_dealloc(o, __pyx_tp_dealloc_7pyarrow_8_compute_Expression);
}

static CYTHON_INLINE PyObject *__pyx_nb_add_7pyarrow_8_compute_Expression_maybe_call_slot(PyTypeObject* type, PyObject *left, PyObject *right ) {
    binaryfunc slot;
#if CYTHON_USE_TYPE_SLOTS
    slot = type->tp_as_number ? type->tp_as_number->nb_add : NULL;
#else
    slot = (binaryfunc) PyType_GetSlot(type, Py_nb_add);
#endif
    return slot ? slot(left, right ) : __Pyx_NewRef(Py_NotImplemented);
}
static PyObject *__pyx_nb_add_7pyarrow_8_compute_Expression(PyObject *left, PyObject *right ) {
    int maybe_self_is_left, maybe_self_is_right = 0;
    maybe_self_is_left = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(left)->tp_as_number && Py_TYPE(left)->tp_as_number->nb_add == &__pyx_nb_add_7pyarrow_8_compute_Expression)
#endif
            || __Pyx_TypeCheck(left, __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_left) {
        PyObject *res;
        res = __pyx_pw_7pyarrow_8_compute_10Expression_29__add__(left, right);
        if (res != Py_NotImplemented) return res;
        Py_DECREF(res);
    }
    maybe_self_is_right = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(right)->tp_as_number && Py_TYPE(right)->tp_as_number->nb_add == &__pyx_nb_add_7pyarrow_8_compute_Expression)
#endif
            || PyType_IsSubtype(Py_TYPE(right), __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_right) {
        return __pyx_nb_add_7pyarrow_8_compute_Expression_maybe_call_slot(__Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, tp_base, PyTypeObject*), left, right );
    }
    return __Pyx_NewRef(Py_NotImplemented);
}



static CYTHON_INLINE PyObject *__pyx_nb_subtract_7pyarrow_8_compute_Expression_maybe_call_slot(PyTypeObject* type, PyObject *left, PyObject *right ) {
    binaryfunc slot;
#if CYTHON_USE_TYPE_SLOTS
    slot = type->tp_as_number ? type->tp_as_number->nb_subtract : NULL;
#else
    slot = (binaryfunc) PyType_GetSlot(type, Py_nb_subtract);
#endif
    return slot ? slot(left, right ) : __Pyx_NewRef(Py_NotImplemented);
}
static PyObject *__pyx_nb_subtract_7pyarrow_8_compute_Expression(PyObject *left, PyObject *right ) {
    int maybe_self_is_left, maybe_self_is_right = 0;
    maybe_self_is_left = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(left)->tp_as_number && Py_TYPE(left)->tp_as_number->nb_subtract == &__pyx_nb_subtract_7pyarrow_8_compute_Expression)
#endif
            || __Pyx_TypeCheck(left, __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_left) {
        PyObject *res;
        res = __pyx_pw_7pyarrow_8_compute_10Expression_33__sub__(left, right);
        if (res != Py_NotImplemented) return res;
        Py_DECREF(res);
    }
    maybe_self_is_right = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(right)->tp_as_number && Py_TYPE(right)->tp_as_number->nb_subtract == &__pyx_nb_subtract_7pyarrow_8_compute_Expression)
#endif
            || PyType_IsSubtype(Py_TYPE(right), __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_right) {
        return __pyx_nb_subtract_7pyarrow_8_compute_Expression_maybe_call_slot(__Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, tp_base, PyTypeObject*), left, right );
    }
    return __Pyx_NewRef(Py_NotImplemented);
}



static CYTHON_INLINE PyObject *__pyx_nb_multiply_7pyarrow_8_compute_Expression_maybe_call_slot(PyTypeObject* type, PyObject *left, PyObject *right ) {
    binaryfunc slot;
#if CYTHON_USE_TYPE_SLOTS
    slot = type->tp_as_number ? type->tp_as_number->nb_multiply : NULL;
#else
    slot = (binaryfunc) PyType_GetSlot(type, Py_nb_multiply);
#endif
    return slot ? slot(left, right ) : __Pyx_NewRef(Py_NotImplemented);
}
static PyObject *__pyx_nb_multiply_7pyarrow_8_compute_Expression(PyObject *left, PyObject *right ) {
    int maybe_self_is_left, maybe_self_is_right = 0;
    maybe_self_is_left = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(left)->tp_as_number && Py_TYPE(left)->tp_as_number->nb_multiply == &__pyx_nb_multiply_7pyarrow_8_compute_Expression)
#endif
            || __Pyx_TypeCheck(left, __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_left) {
        PyObject *res;
        res = __pyx_pw_7pyarrow_8_compute_10Expression_31__mul__(left, right);
        if (res != Py_NotImplemented) return res;
        Py_DECREF(res);
    }
    maybe_self_is_right = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(right)->tp_as_number && Py_TYPE(right)->tp_as_number->nb_multiply == &__pyx_nb_multiply_7pyarrow_8_compute_Expression)
#endif
            || PyType_IsSubtype(Py_TYPE(right), __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_right) {
        return __pyx_nb_multiply_7pyarrow_8_compute_Expression_maybe_call_slot(__Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, tp_base, PyTypeObject*), left, right );
    }
    return __Pyx_NewRef(Py_NotImplemented);
}



static CYTHON_INLINE PyObject *__pyx_nb_and_7pyarrow_8_compute_Expression_maybe_call_slot(PyTypeObject* type, PyObject *left, PyObject *right ) {
    binaryfunc slot;
#if CYTHON_USE_TYPE_SLOTS
    slot = type->tp_as_number ? type->tp_as_number->nb_and : NULL;
#else
    slot = (binaryfunc) PyType_GetSlot(type, Py_nb_and);
#endif
    return slot ? slot(left, right ) : __Pyx_NewRef(Py_NotImplemented);
}
static PyObject *__pyx_nb_and_7pyarrow_8_compute_Expression(PyObject *left, PyObject *right ) {
    int maybe_self_is_left, maybe_self_is_right = 0;
    maybe_self_is_left = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(left)->tp_as_number && Py_TYPE(left)->tp_as_number->nb_and == &__pyx_nb_and_7pyarrow_8_compute_Expression)
#endif
            || __Pyx_TypeCheck(left, __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_left) {
        PyObject *res;
        res = __pyx_pw_7pyarrow_8_compute_10Expression_25__and__(left, right);
        if (res != Py_NotImplemented) return res;
        Py_DECREF(res);
    }
    maybe_self_is_right = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(right)->tp_as_number && Py_TYPE(right)->tp_as_number->nb_and == &__pyx_nb_and_7pyarrow_8_compute_Expression)
#endif
            || PyType_IsSubtype(Py_TYPE(right), __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_right) {
        return __pyx_nb_and_7pyarrow_8_compute_Expression_maybe_call_slot(__Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, tp_base, PyTypeObject*), left, right );
    }
    return __Pyx_NewRef(Py_NotImplemented);
}



static CYTHON_INLINE PyObject *__pyx_nb_or_7pyarrow_8_compute_Expression_maybe_call_slot(PyTypeObject* type, PyObject *left, PyObject *right ) {
    binaryfunc slot;
#if CYTHON_USE_TYPE_SLOTS
    slot = type->tp_as_number ? type->tp_as_number->nb_or : NULL;
#else
    slot = (binaryfunc) PyType_GetSlot(type, Py_nb_or);
#endif
    return slot ? slot(left, right ) : __Pyx_NewRef(Py_NotImplemented);
}
static PyObject *__pyx_nb_or_7pyarrow_8_compute_Expression(PyObject *left, PyObject *right ) {
    int maybe_self_is_left, maybe_self_is_right = 0;
    maybe_self_is_left = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(left)->tp_as_number && Py_TYPE(left)->tp_as_number->nb_or == &__pyx_nb_or_7pyarrow_8_compute_Expression)
#endif
            || __Pyx_TypeCheck(left, __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_left) {
        PyObject *res;
        res = __pyx_pw_7pyarrow_8_compute_10Expression_27__or__(left, right);
        if (res != Py_NotImplemented) return res;
        Py_DECREF(res);
    }
    maybe_self_is_right = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(right)->tp_as_number && Py_TYPE(right)->tp_as_number->nb_or == &__pyx_nb_or_7pyarrow_8_compute_Expression)
#endif
            || PyType_IsSubtype(Py_TYPE(right), __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_right) {
        return __pyx_nb_or_7pyarrow_8_compute_Expression_maybe_call_slot(__Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, tp_base, PyTypeObject*), left, right );
    }
    return __Pyx_NewRef(Py_NotImplemented);
}



static CYTHON_INLINE PyObject *__pyx_nb_true_divide_7pyarrow_8_compute_Expression_maybe_call_slot(PyTypeObject* type, PyObject *left, PyObject *right ) {
    binaryfunc slot;
#if CYTHON_USE_TYPE_SLOTS
    slot = type->tp_as_number ? type->tp_as_number->nb_true_divide : NULL;
#else
    slot = (binaryfunc) PyType_GetSlot(type, Py_nb_true_divide);
#endif
    return slot ? slot(left, right ) : __Pyx_NewRef(Py_NotImplemented);
}
static PyObject *__pyx_nb_true_divide_7pyarrow_8_compute_Expression(PyObject *left, PyObject *right ) {
    int maybe_self_is_left, maybe_self_is_right = 0;
    maybe_self_is_left = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(left)->tp_as_number && Py_TYPE(left)->tp_as_number->nb_true_divide == &__pyx_nb_true_divide_7pyarrow_8_compute_Expression)
#endif
            || __Pyx_TypeCheck(left, __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_left) {
        PyObject *res;
        res = __pyx_pw_7pyarrow_8_compute_10Expression_35__truediv__(left, right);
        if (res != Py_NotImplemented) return res;
        Py_DECREF(res);
    }
    maybe_self_is_right = Py_TYPE(left) == Py_TYPE(right)
#if CYTHON_USE_TYPE_SLOTS
            || (Py_TYPE(right)->tp_as_number && Py_TYPE(right)->tp_as_number->nb_true_divide == &__pyx_nb_true_divide_7pyarrow_8_compute_Expression)
#endif
            || PyType_IsSubtype(Py_TYPE(right), __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression);
    if (maybe_self_is_right) {
        return __pyx_nb_true_divide_7pyarrow_8_compute_Expression_maybe_call_slot(__Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, tp_base, PyTypeObject*), left, right );
    }
    return __Pyx_NewRef(Py_NotImplemented);
}



static PyMethodDef __pyx_methods_7pyarrow_8_compute_Expression[] = {
  {"equals", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_3equals, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_2equals},
  {"from_substrait", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_9from_substrait, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_8from_substrait},
  {"to_substrait", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_11to_substrait, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_10to_substrait},
  {"_deserialize", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_13_deserialize, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_12_deserialize},
  {"__reduce__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_15__reduce__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_14__reduce__},
  {"_call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_17_call, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_16_call},
  {"__and__", (PyCFunction)__pyx_pw_7pyarrow_8_compute_10Expression_25__and__, METH_O|METH_COEXIST, 0},
  {"__or__", (PyCFunction)__pyx_pw_7pyarrow_8_compute_10Expression_27__or__, METH_O|METH_COEXIST, 0},
  {"__add__", (PyCFunction)__pyx_pw_7pyarrow_8_compute_10Expression_29__add__, METH_O|METH_COEXIST, 0},
  {"__mul__", (PyCFunction)__pyx_pw_7pyarrow_8_compute_10Expression_31__mul__, METH_O|METH_COEXIST, 0},
  {"__sub__", (PyCFunction)__pyx_pw_7pyarrow_8_compute_10Expression_33__sub__, METH_O|METH_COEXIST, 0},
  {"__truediv__", (PyCFunction)__pyx_pw_7pyarrow_8_compute_10Expression_35__truediv__, METH_O|METH_COEXIST, 0},
  {"is_valid", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_37is_valid, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_36is_valid},
  {"is_null", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_39is_null, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_38is_null},
  {"is_nan", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_41is_nan, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_40is_nan},
  {"cast", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_43cast, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_42cast},
  {"isin", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_45isin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_44isin},
  {"_field", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_47_field, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_46_field},
  {"_nested_field", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_49_nested_field, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_48_nested_field},
  {"_scalar", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_10Expression_51_scalar, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_10Expression_50_scalar},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_Expression_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Expression},
  {Py_tp_repr, (void *)__pyx_pw_7pyarrow_8_compute_10Expression_7__repr__},
  {Py_nb_add, (void *)__pyx_nb_add_7pyarrow_8_compute_Expression},
  {Py_nb_subtract, (void *)__pyx_nb_subtract_7pyarrow_8_compute_Expression},
  {Py_nb_multiply, (void *)__pyx_nb_multiply_7pyarrow_8_compute_Expression},
  {Py_nb_bool, (void *)__pyx_pw_7pyarrow_8_compute_10Expression_21__bool__},
  {Py_nb_invert, (void *)__pyx_pw_7pyarrow_8_compute_10Expression_23__invert__},
  {Py_nb_and, (void *)__pyx_nb_and_7pyarrow_8_compute_Expression},
  {Py_nb_or, (void *)__pyx_nb_or_7pyarrow_8_compute_Expression},
  {Py_nb_true_divide, (void *)__pyx_nb_true_divide_7pyarrow_8_compute_Expression},
  {Py_tp_str, (void *)__pyx_pw_7pyarrow_8_compute_10Expression_5__str__},
  {Py_tp_doc, (void *)PyDoc_STR("Expression()\n\nA logical expression to be evaluated against some input.\n\nTo create an expression:\n\n- Use the factory function ``pyarrow.compute.scalar()`` to create a\n  scalar (not necessary when combined, see example below).\n- Use the factory function ``pyarrow.compute.field()`` to reference\n  a field (column in table).\n- Compare fields and scalars with ``<``, ``<=``, ``==``, ``>=``, ``>``.\n- Combine expressions using python operators ``&`` (logical and),\n  ``|`` (logical or) and ``~`` (logical not).\n  Note: python keywords ``and``, ``or`` and ``not`` cannot be used\n  to combine expressions.\n- Create expression predicates using Expression methods such as\n  ``pyarrow.compute.Expression.isin()``.\n\nExamples\n--------\n\n>>> import pyarrow.compute as pc\n>>> (pc.field(\"a\") < pc.scalar(3)) | (pc.field(\"b\") > 7)\n<pyarrow.compute.Expression ((a < 3) or (b > 7))>\n>>> pc.field('a') != 3\n<pyarrow.compute.Expression (a != 3)>\n>>> pc.field('a').isin([1, 2, 3])\n<pyarrow.compute.Expression is_in(a, {value_set=int64:[\n  1,\n  2,\n  3\n], null_matching_behavior=MATCH})>")},
  {Py_tp_richcompare, (void *)__pyx_pw_7pyarrow_8_compute_10Expression_19__richcmp__},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute_Expression},
  {Py_tp_init, (void *)__pyx_pw_7pyarrow_8_compute_10Expression_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_Expression},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_Expression_spec = {
  "pyarrow._compute.Expression",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_Expression),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_Expression_slots,
};
#else

static PyNumberMethods __pyx_tp_as_number_Expression = {
  __pyx_nb_add_7pyarrow_8_compute_Expression, /*nb_add*/
  __pyx_nb_subtract_7pyarrow_8_compute_Expression, /*nb_subtract*/
  __pyx_nb_multiply_7pyarrow_8_compute_Expression, /*nb_multiply*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  __pyx_pw_7pyarrow_8_compute_10Expression_21__bool__, /*nb_bool*/
  __pyx_pw_7pyarrow_8_compute_10Expression_23__invert__, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  __pyx_nb_and_7pyarrow_8_compute_Expression, /*nb_and*/
  0, /*nb_xor*/
  __pyx_nb_or_7pyarrow_8_compute_Expression, /*nb_or*/
  0, /*nb_int*/
  0, /*nb_long (reserved)*/
  0, /*nb_float*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  __pyx_nb_true_divide_7pyarrow_8_compute_Expression, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  0, /*nb_index*/
  0, /*nb_matrix_multiply*/
  0, /*nb_inplace_matrix_multiply*/
};

static PyTypeObject __pyx_type_7pyarrow_8_compute_Expression = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""Expression", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_Expression), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Expression, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_7pyarrow_8_compute_10Expression_7__repr__, /*tp_repr*/
  &__pyx_tp_as_number_Expression, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  __pyx_pw_7pyarrow_8_compute_10Expression_5__str__, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  PyDoc_STR("Expression()\n\nA logical expression to be evaluated against some input.\n\nTo create an expression:\n\n- Use the factory function ``pyarrow.compute.scalar()`` to create a\n  scalar (not necessary when combined, see example below).\n- Use the factory function ``pyarrow.compute.field()`` to reference\n  a field (column in table).\n- Compare fields and scalars with ``<``, ``<=``, ``==``, ``>=``, ``>``.\n- Combine expressions using python operators ``&`` (logical and),\n  ``|`` (logical or) and ``~`` (logical not).\n  Note: python keywords ``and``, ``or`` and ``not`` cannot be used\n  to combine expressions.\n- Create expression predicates using Expression methods such as\n  ``pyarrow.compute.Expression.isin()``.\n\nExamples\n--------\n\n>>> import pyarrow.compute as pc\n>>> (pc.field(\"a\") < pc.scalar(3)) | (pc.field(\"b\") > 7)\n<pyarrow.compute.Expression ((a < 3) or (b > 7))>\n>>> pc.field('a') != 3\n<pyarrow.compute.Expression (a != 3)>\n>>> pc.field('a').isin([1, 2, 3])\n<pyarrow.compute.Expression is_in(a, {value_set=int64:[\n  1,\n  2,\n  3\n], null_matching_behavior=MATCH})>"), /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  __pyx_pw_7pyarrow_8_compute_10Expression_19__richcmp__, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute_Expression, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_7pyarrow_8_compute_10Expression_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_Expression, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7pyarrow_8_compute_Kernel(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_new, newfunc)(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static void __pyx_tp_dealloc_7pyarrow_8_compute_Kernel(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyarrow_8_compute_Kernel) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable)) __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_dealloc, destructor)(o); else
  #endif
  __Pyx_call_next_tp_dealloc(o, __pyx_tp_dealloc_7pyarrow_8_compute_Kernel);
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute_Kernel[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_6Kernel_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_6Kernel_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_6Kernel_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_6Kernel_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_Kernel_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Kernel},
  {Py_tp_doc, (void *)PyDoc_STR("Kernel()\n\nA kernel object.\n\nKernels handle the execution of a Function for a certain signature.")},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute_Kernel},
  {Py_tp_init, (void *)__pyx_pw_7pyarrow_8_compute_6Kernel_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_Kernel},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_Kernel_spec = {
  "pyarrow._compute.Kernel",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_Kernel),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_Kernel_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_Kernel = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""Kernel", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_Kernel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Kernel, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  PyDoc_STR("Kernel()\n\nA kernel object.\n\nKernels handle the execution of a Function for a certain signature."), /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute_Kernel, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_7pyarrow_8_compute_6Kernel_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_Kernel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarKernel __pyx_vtable_7pyarrow_8_compute_ScalarKernel;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_ScalarKernel(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_Kernel(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *)o);
  p->__pyx_vtab = __pyx_vtabptr_7pyarrow_8_compute_ScalarKernel;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute_ScalarKernel[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12ScalarKernel_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12ScalarKernel_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12ScalarKernel_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12ScalarKernel_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_ScalarKernel_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Kernel},
  {Py_tp_repr, (void *)__pyx_pw_7pyarrow_8_compute_12ScalarKernel_1__repr__},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute_ScalarKernel},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_ScalarKernel},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_ScalarKernel_spec = {
  "pyarrow._compute.ScalarKernel",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_ScalarKernel),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_ScalarKernel_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_ScalarKernel = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""ScalarKernel", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_ScalarKernel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Kernel, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_7pyarrow_8_compute_12ScalarKernel_1__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute_ScalarKernel, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_6Kernel_1__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_ScalarKernel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_VectorKernel __pyx_vtable_7pyarrow_8_compute_VectorKernel;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_VectorKernel(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_VectorKernel *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_Kernel(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_VectorKernel *)o);
  p->__pyx_vtab = __pyx_vtabptr_7pyarrow_8_compute_VectorKernel;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute_VectorKernel[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12VectorKernel_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12VectorKernel_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12VectorKernel_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12VectorKernel_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_VectorKernel_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Kernel},
  {Py_tp_repr, (void *)__pyx_pw_7pyarrow_8_compute_12VectorKernel_1__repr__},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute_VectorKernel},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_VectorKernel},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_VectorKernel_spec = {
  "pyarrow._compute.VectorKernel",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_VectorKernel),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_VectorKernel_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_VectorKernel = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""VectorKernel", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_VectorKernel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Kernel, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_7pyarrow_8_compute_12VectorKernel_1__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute_VectorKernel, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_6Kernel_1__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_VectorKernel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarAggregateKernel __pyx_vtable_7pyarrow_8_compute_ScalarAggregateKernel;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_ScalarAggregateKernel(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_Kernel(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *)o);
  p->__pyx_vtab = __pyx_vtabptr_7pyarrow_8_compute_ScalarAggregateKernel;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute_ScalarAggregateKernel[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21ScalarAggregateKernel_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21ScalarAggregateKernel_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_ScalarAggregateKernel_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Kernel},
  {Py_tp_repr, (void *)__pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_1__repr__},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute_ScalarAggregateKernel},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_ScalarAggregateKernel},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_ScalarAggregateKernel_spec = {
  "pyarrow._compute.ScalarAggregateKernel",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_ScalarAggregateKernel_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_ScalarAggregateKernel = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""ScalarAggregateKernel", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Kernel, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_7pyarrow_8_compute_21ScalarAggregateKernel_1__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute_ScalarAggregateKernel, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_6Kernel_1__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_ScalarAggregateKernel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_HashAggregateKernel __pyx_vtable_7pyarrow_8_compute_HashAggregateKernel;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_HashAggregateKernel(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_Kernel(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *)o);
  p->__pyx_vtab = __pyx_vtabptr_7pyarrow_8_compute_HashAggregateKernel;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute_HashAggregateKernel[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19HashAggregateKernel_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19HashAggregateKernel_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_HashAggregateKernel_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Kernel},
  {Py_tp_repr, (void *)__pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_1__repr__},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute_HashAggregateKernel},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_HashAggregateKernel},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_HashAggregateKernel_spec = {
  "pyarrow._compute.HashAggregateKernel",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_HashAggregateKernel_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_HashAggregateKernel = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""HashAggregateKernel", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Kernel, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_7pyarrow_8_compute_19HashAggregateKernel_1__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute_HashAggregateKernel, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_6Kernel_1__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_HashAggregateKernel, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_Function __pyx_vtable_7pyarrow_8_compute_Function;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_Function(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_Function *p;
  PyObject *o = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_new, newfunc)(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_Function *)o);
  p->__pyx_vtab = __pyx_vtabptr_7pyarrow_8_compute_Function;
  __Pyx_default_placement_construct(&(p->sp_func));
  return o;
}

static void __pyx_tp_dealloc_7pyarrow_8_compute_Function(PyObject *o) {
  struct __pyx_obj_7pyarrow_8_compute_Function *p = (struct __pyx_obj_7pyarrow_8_compute_Function *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyarrow_8_compute_Function) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  __Pyx_call_destructor(p->sp_func);
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable)) __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_dealloc, destructor)(o); else
  #endif
  __Pyx_call_next_tp_dealloc(o, __pyx_tp_dealloc_7pyarrow_8_compute_Function);
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_8Function_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_8Function_4name_1__get__(o);
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_8Function_arity(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_8Function_5arity_1__get__(o);
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_8Function_kind(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_8Function_4kind_1__get__(o);
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_8Function__doc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_8Function_4_doc_1__get__(o);
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_8Function_num_kernels(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_8Function_11num_kernels_1__get__(o);
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute_Function[] = {
  {"__reduce__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_8Function_5__reduce__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_8Function_4__reduce__},
  {"call", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_8Function_7call, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_8Function_6call},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7pyarrow_8_compute_Function[] = {
  {"name", __pyx_getprop_7pyarrow_8_compute_8Function_name, 0, PyDoc_STR("\n        The function name.\n        "), 0},
  {"arity", __pyx_getprop_7pyarrow_8_compute_8Function_arity, 0, PyDoc_STR("\n        The function arity.\n\n        If Ellipsis (i.e. `...`) is returned, the function takes a variable\n        number of arguments.\n        "), 0},
  {"kind", __pyx_getprop_7pyarrow_8_compute_8Function_kind, 0, PyDoc_STR("\n        The function kind.\n        "), 0},
  {"_doc", __pyx_getprop_7pyarrow_8_compute_8Function__doc, 0, PyDoc_STR("\n        The C++-like function documentation (for internal use).\n        "), 0},
  {"num_kernels", __pyx_getprop_7pyarrow_8_compute_8Function_num_kernels, 0, PyDoc_STR("\n        The number of kernels implementing this function.\n        "), 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_Function_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Function},
  {Py_tp_repr, (void *)__pyx_pw_7pyarrow_8_compute_8Function_3__repr__},
  {Py_tp_doc, (void *)PyDoc_STR("Function()\n\nA compute function.\n\nA function implements a certain logical computation over a range of\npossible input signatures.  Each signature accepts a range of input\ntypes and is implemented by a given Kernel.\n\nFunctions can be of different kinds:\n\n* \"scalar\" functions apply an item-wise computation over all items\n  of their inputs.  Each item in the output only depends on the values\n  of the inputs at the same position.  Examples: addition, comparisons,\n  string predicates...\n\n* \"vector\" functions apply a collection-wise computation, such that\n  each item in the output may depend on the values of several items\n  in each input.  Examples: dictionary encoding, sorting, extracting\n  unique values...\n\n* \"scalar_aggregate\" functions reduce the dimensionality of the inputs by\n  applying a reduction function.  Examples: sum, min_max, mode...\n\n* \"hash_aggregate\" functions apply a reduction function to an input\n  subdivided by grouping criteria.  They may not be directly called.\n  Examples: hash_sum, hash_min_max...\n\n* \"meta\" functions dispatch to other functions.")},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute_Function},
  {Py_tp_getset, (void *)__pyx_getsets_7pyarrow_8_compute_Function},
  {Py_tp_init, (void *)__pyx_pw_7pyarrow_8_compute_8Function_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_Function},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_Function_spec = {
  "pyarrow._compute.Function",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_Function),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_Function_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_Function = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""Function", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_Function), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Function, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  __pyx_pw_7pyarrow_8_compute_8Function_3__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  PyDoc_STR("Function()\n\nA compute function.\n\nA function implements a certain logical computation over a range of\npossible input signatures.  Each signature accepts a range of input\ntypes and is implemented by a given Kernel.\n\nFunctions can be of different kinds:\n\n* \"scalar\" functions apply an item-wise computation over all items\n  of their inputs.  Each item in the output only depends on the values\n  of the inputs at the same position.  Examples: addition, comparisons,\n  string predicates...\n\n* \"vector\" functions apply a collection-wise computation, such that\n  each item in the output may depend on the values of several items\n  in each input.  Examples: dictionary encoding, sorting, extracting\n  unique values...\n\n* \"scalar_aggregate\" functions reduce the dimensionality of the inputs by\n  applying a reduction function.  Examples: sum, min_max, mode...\n\n* \"hash_aggregate\" functions apply a reduction function to an input\n  subdivided by grouping criteria.  They may not be directly called.\n  Examples: hash_sum, hash_min_max...\n\n* \"meta\" functions dispatch to other functions."), /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute_Function, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7pyarrow_8_compute_Function, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_7pyarrow_8_compute_8Function_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_Function, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarFunction __pyx_vtable_7pyarrow_8_compute_ScalarFunction;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_ScalarFunction(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_ScalarFunction *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_Function(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_ScalarFunction *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_Function*)__pyx_vtabptr_7pyarrow_8_compute_ScalarFunction;
  return o;
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_14ScalarFunction_kernels(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_14ScalarFunction_7kernels_1__get__(o);
}

static struct PyGetSetDef __pyx_getsets_7pyarrow_8_compute_ScalarFunction[] = {
  {"kernels", __pyx_getprop_7pyarrow_8_compute_14ScalarFunction_kernels, 0, PyDoc_STR("\n        The kernels implementing this function.\n        "), 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_ScalarFunction_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Function},
  {Py_tp_getset, (void *)__pyx_getsets_7pyarrow_8_compute_ScalarFunction},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_ScalarFunction},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_ScalarFunction_spec = {
  "pyarrow._compute.ScalarFunction",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_ScalarFunction),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_ScalarFunction_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_ScalarFunction = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""ScalarFunction", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_ScalarFunction), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Function, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_8Function_3__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7pyarrow_8_compute_ScalarFunction, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_8Function_1__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_ScalarFunction, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_VectorFunction __pyx_vtable_7pyarrow_8_compute_VectorFunction;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_VectorFunction(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_VectorFunction *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_Function(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_VectorFunction *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_Function*)__pyx_vtabptr_7pyarrow_8_compute_VectorFunction;
  return o;
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_14VectorFunction_kernels(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_14VectorFunction_7kernels_1__get__(o);
}

static struct PyGetSetDef __pyx_getsets_7pyarrow_8_compute_VectorFunction[] = {
  {"kernels", __pyx_getprop_7pyarrow_8_compute_14VectorFunction_kernels, 0, PyDoc_STR("\n        The kernels implementing this function.\n        "), 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_VectorFunction_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Function},
  {Py_tp_getset, (void *)__pyx_getsets_7pyarrow_8_compute_VectorFunction},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_VectorFunction},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_VectorFunction_spec = {
  "pyarrow._compute.VectorFunction",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_VectorFunction),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_VectorFunction_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_VectorFunction = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""VectorFunction", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_VectorFunction), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Function, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_8Function_3__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7pyarrow_8_compute_VectorFunction, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_8Function_1__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_VectorFunction, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_ScalarAggregateFunction __pyx_vtable_7pyarrow_8_compute_ScalarAggregateFunction;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_ScalarAggregateFunction(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_Function(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_Function*)__pyx_vtabptr_7pyarrow_8_compute_ScalarAggregateFunction;
  return o;
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_23ScalarAggregateFunction_kernels(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_23ScalarAggregateFunction_7kernels_1__get__(o);
}

static struct PyGetSetDef __pyx_getsets_7pyarrow_8_compute_ScalarAggregateFunction[] = {
  {"kernels", __pyx_getprop_7pyarrow_8_compute_23ScalarAggregateFunction_kernels, 0, PyDoc_STR("\n        The kernels implementing this function.\n        "), 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_ScalarAggregateFunction_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Function},
  {Py_tp_getset, (void *)__pyx_getsets_7pyarrow_8_compute_ScalarAggregateFunction},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_ScalarAggregateFunction},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_ScalarAggregateFunction_spec = {
  "pyarrow._compute.ScalarAggregateFunction",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_ScalarAggregateFunction_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_ScalarAggregateFunction = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""ScalarAggregateFunction", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Function, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_8Function_3__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7pyarrow_8_compute_ScalarAggregateFunction, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_8Function_1__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_ScalarAggregateFunction, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_HashAggregateFunction __pyx_vtable_7pyarrow_8_compute_HashAggregateFunction;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_HashAggregateFunction(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_Function(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_Function*)__pyx_vtabptr_7pyarrow_8_compute_HashAggregateFunction;
  return o;
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_21HashAggregateFunction_kernels(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_21HashAggregateFunction_7kernels_1__get__(o);
}

static struct PyGetSetDef __pyx_getsets_7pyarrow_8_compute_HashAggregateFunction[] = {
  {"kernels", __pyx_getprop_7pyarrow_8_compute_21HashAggregateFunction_kernels, 0, PyDoc_STR("\n        The kernels implementing this function.\n        "), 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_HashAggregateFunction_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Function},
  {Py_tp_getset, (void *)__pyx_getsets_7pyarrow_8_compute_HashAggregateFunction},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_HashAggregateFunction},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_HashAggregateFunction_spec = {
  "pyarrow._compute.HashAggregateFunction",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_HashAggregateFunction_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_HashAggregateFunction = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""HashAggregateFunction", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Function, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_8Function_3__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7pyarrow_8_compute_HashAggregateFunction, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_8Function_1__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_HashAggregateFunction, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_MetaFunction __pyx_vtable_7pyarrow_8_compute_MetaFunction;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_MetaFunction(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_MetaFunction *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_Function(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_MetaFunction *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_Function*)__pyx_vtabptr_7pyarrow_8_compute_MetaFunction;
  return o;
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_12MetaFunction_kernels(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_12MetaFunction_7kernels_1__get__(o);
}

static struct PyGetSetDef __pyx_getsets_7pyarrow_8_compute_MetaFunction[] = {
  {"kernels", __pyx_getprop_7pyarrow_8_compute_12MetaFunction_kernels, 0, PyDoc_STR("\n        The kernels implementing this function.\n        "), 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_MetaFunction_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_Function},
  {Py_tp_getset, (void *)__pyx_getsets_7pyarrow_8_compute_MetaFunction},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_MetaFunction},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_MetaFunction_spec = {
  "pyarrow._compute.MetaFunction",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_MetaFunction),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_MetaFunction_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_MetaFunction = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""MetaFunction", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_MetaFunction), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_Function, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_8Function_3__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7pyarrow_8_compute_MetaFunction, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_8Function_1__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_MetaFunction, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7pyarrow_8_compute_FunctionRegistry(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_new, newfunc)(t, a, k);
  if (unlikely(!o)) return 0;
  return o;
}

static void __pyx_tp_dealloc_7pyarrow_8_compute_FunctionRegistry(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyarrow_8_compute_FunctionRegistry) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable)) __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_dealloc, destructor)(o); else
  #endif
  __Pyx_call_next_tp_dealloc(o, __pyx_tp_dealloc_7pyarrow_8_compute_FunctionRegistry);
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute_FunctionRegistry[] = {
  {"list_functions", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_3list_functions, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16FunctionRegistry_2list_functions},
  {"get_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_5get_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16FunctionRegistry_4get_function},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16FunctionRegistry_6__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16FunctionRegistry_8__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_FunctionRegistry_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionRegistry},
  {Py_tp_doc, (void *)PyDoc_STR("FunctionRegistry()")},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute_FunctionRegistry},
  {Py_tp_init, (void *)__pyx_pw_7pyarrow_8_compute_16FunctionRegistry_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_FunctionRegistry},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_FunctionRegistry_spec = {
  "pyarrow._compute.FunctionRegistry",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_FunctionRegistry_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_FunctionRegistry = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""FunctionRegistry", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionRegistry, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  PyDoc_STR("FunctionRegistry()"), /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute_FunctionRegistry, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_7pyarrow_8_compute_16FunctionRegistry_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_FunctionRegistry, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__CastOptions __pyx_vtable_7pyarrow_8_compute__CastOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__CastOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__CastOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__CastOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__CastOptions;
  return o;
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_int_overflow(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow_1__get__(o);
}

static int __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_int_overflow(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_int_overflow_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_time_truncate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate_1__get__(o);
}

static int __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_time_truncate(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_truncate_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_time_overflow(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow_1__get__(o);
}

static int __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_time_overflow(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_7pyarrow_8_compute_12_CastOptions_19allow_time_overflow_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_decimal_truncate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate_1__get__(o);
}

static int __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_decimal_truncate(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_7pyarrow_8_compute_12_CastOptions_22allow_decimal_truncate_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_float_truncate(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate_1__get__(o);
}

static int __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_float_truncate(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_7pyarrow_8_compute_12_CastOptions_20allow_float_truncate_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_invalid_utf8(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8_1__get__(o);
}

static int __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_invalid_utf8(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_7pyarrow_8_compute_12_CastOptions_18allow_invalid_utf8_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__CastOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions__set_options},
  {"_set_type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_3_set_type, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_2_set_type},
  {"_set_safe", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_5_set_safe, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_4_set_safe},
  {"_set_unsafe", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_7_set_unsafe, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_6_set_unsafe},
  {"is_safe", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_9is_safe, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_8is_safe},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_CastOptions_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_CastOptions_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_7pyarrow_8_compute__CastOptions[] = {
  {"allow_int_overflow", __pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_int_overflow, __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_int_overflow, 0, 0},
  {"allow_time_truncate", __pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_time_truncate, __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_time_truncate, 0, 0},
  {"allow_time_overflow", __pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_time_overflow, __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_time_overflow, 0, 0},
  {"allow_decimal_truncate", __pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_decimal_truncate, __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_decimal_truncate, 0, 0},
  {"allow_float_truncate", __pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_float_truncate, __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_float_truncate, 0, 0},
  {"allow_invalid_utf8", __pyx_getprop_7pyarrow_8_compute_12_CastOptions_allow_invalid_utf8, __pyx_setprop_7pyarrow_8_compute_12_CastOptions_allow_invalid_utf8, 0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__CastOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__CastOptions},
  {Py_tp_getset, (void *)__pyx_getsets_7pyarrow_8_compute__CastOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__CastOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__CastOptions_spec = {
  "pyarrow._compute._CastOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__CastOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__CastOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__CastOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_CastOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__CastOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__CastOptions, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_7pyarrow_8_compute__CastOptions, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__CastOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ElementWiseAggregateOptions __pyx_vtable_7pyarrow_8_compute__ElementWiseAggregateOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ElementWiseAggregateOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ElementWiseAggregateOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ElementWiseAggregateOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_28_ElementWiseAggregateOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_28_ElementWiseAggregateOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_28_ElementWiseAggregateOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_28_ElementWiseAggregateOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ElementWiseAggregateOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ElementWiseAggregateOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ElementWiseAggregateOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ElementWiseAggregateOptions_spec = {
  "pyarrow._compute._ElementWiseAggregateOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ElementWiseAggregateOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ElementWiseAggregateOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ElementWiseAggregateOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ElementWiseAggregateOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ElementWiseAggregateOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__RoundOptions __pyx_vtable_7pyarrow_8_compute__RoundOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__RoundOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__RoundOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__RoundOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__RoundOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__RoundOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_RoundOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_RoundOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_RoundOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_RoundOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_RoundOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_RoundOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__RoundOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__RoundOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__RoundOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__RoundOptions_spec = {
  "pyarrow._compute._RoundOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RoundOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__RoundOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__RoundOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_RoundOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RoundOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__RoundOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__RoundOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__RoundBinaryOptions __pyx_vtable_7pyarrow_8_compute__RoundBinaryOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__RoundBinaryOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__RoundBinaryOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__RoundBinaryOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_RoundBinaryOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_RoundBinaryOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_RoundBinaryOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_RoundBinaryOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__RoundBinaryOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__RoundBinaryOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__RoundBinaryOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__RoundBinaryOptions_spec = {
  "pyarrow._compute._RoundBinaryOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__RoundBinaryOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__RoundBinaryOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_RoundBinaryOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__RoundBinaryOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__RoundBinaryOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__RoundTemporalOptions __pyx_vtable_7pyarrow_8_compute__RoundTemporalOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__RoundTemporalOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__RoundTemporalOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__RoundTemporalOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_RoundTemporalOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_RoundTemporalOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_RoundTemporalOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_RoundTemporalOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__RoundTemporalOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__RoundTemporalOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__RoundTemporalOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__RoundTemporalOptions_spec = {
  "pyarrow._compute._RoundTemporalOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__RoundTemporalOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__RoundTemporalOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_RoundTemporalOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__RoundTemporalOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__RoundTemporalOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__RoundToMultipleOptions __pyx_vtable_7pyarrow_8_compute__RoundToMultipleOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__RoundToMultipleOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__RoundToMultipleOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__RoundToMultipleOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_RoundToMultipleOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_RoundToMultipleOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_RoundToMultipleOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_RoundToMultipleOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__RoundToMultipleOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__RoundToMultipleOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__RoundToMultipleOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__RoundToMultipleOptions_spec = {
  "pyarrow._compute._RoundToMultipleOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__RoundToMultipleOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__RoundToMultipleOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_RoundToMultipleOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__RoundToMultipleOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__RoundToMultipleOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__JoinOptions __pyx_vtable_7pyarrow_8_compute__JoinOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__JoinOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__JoinOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__JoinOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__JoinOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__JoinOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_JoinOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_JoinOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_JoinOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_JoinOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_JoinOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_JoinOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__JoinOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__JoinOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__JoinOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__JoinOptions_spec = {
  "pyarrow._compute._JoinOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__JoinOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__JoinOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__JoinOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_JoinOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__JoinOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__JoinOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__JoinOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__MatchSubstringOptions __pyx_vtable_7pyarrow_8_compute__MatchSubstringOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__MatchSubstringOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__MatchSubstringOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__MatchSubstringOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_MatchSubstringOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_MatchSubstringOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_MatchSubstringOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_MatchSubstringOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__MatchSubstringOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__MatchSubstringOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__MatchSubstringOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__MatchSubstringOptions_spec = {
  "pyarrow._compute._MatchSubstringOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__MatchSubstringOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__MatchSubstringOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_MatchSubstringOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__MatchSubstringOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__MatchSubstringOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__PadOptions __pyx_vtable_7pyarrow_8_compute__PadOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__PadOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__PadOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__PadOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__PadOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__PadOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11_PadOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11_PadOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11_PadOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11_PadOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11_PadOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11_PadOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__PadOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__PadOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__PadOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__PadOptions_spec = {
  "pyarrow._compute._PadOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__PadOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__PadOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__PadOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_PadOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__PadOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__PadOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__PadOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ZeroFillOptions __pyx_vtable_7pyarrow_8_compute__ZeroFillOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ZeroFillOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ZeroFillOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ZeroFillOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_ZeroFillOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_ZeroFillOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_ZeroFillOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_ZeroFillOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ZeroFillOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ZeroFillOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ZeroFillOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ZeroFillOptions_spec = {
  "pyarrow._compute._ZeroFillOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ZeroFillOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ZeroFillOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ZeroFillOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ZeroFillOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ZeroFillOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__TrimOptions __pyx_vtable_7pyarrow_8_compute__TrimOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__TrimOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__TrimOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__TrimOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__TrimOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__TrimOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TrimOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TrimOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TrimOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TrimOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TrimOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TrimOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__TrimOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__TrimOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__TrimOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__TrimOptions_spec = {
  "pyarrow._compute._TrimOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__TrimOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__TrimOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__TrimOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_TrimOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__TrimOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__TrimOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__TrimOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ReplaceSubstringOptions __pyx_vtable_7pyarrow_8_compute__ReplaceSubstringOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ReplaceSubstringOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ReplaceSubstringOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ReplaceSubstringOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ReplaceSubstringOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ReplaceSubstringOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ReplaceSubstringOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ReplaceSubstringOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ReplaceSubstringOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ReplaceSubstringOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ReplaceSubstringOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ReplaceSubstringOptions_spec = {
  "pyarrow._compute._ReplaceSubstringOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ReplaceSubstringOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ReplaceSubstringOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ReplaceSubstringOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ReplaceSubstringOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ReplaceSubstringOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ExtractRegexOptions __pyx_vtable_7pyarrow_8_compute__ExtractRegexOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ExtractRegexOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ExtractRegexOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ExtractRegexOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ExtractRegexOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ExtractRegexOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ExtractRegexOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ExtractRegexOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ExtractRegexOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ExtractRegexOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ExtractRegexOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ExtractRegexOptions_spec = {
  "pyarrow._compute._ExtractRegexOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ExtractRegexOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ExtractRegexOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ExtractRegexOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ExtractRegexOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ExtractRegexOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ExtractRegexSpanOptions __pyx_vtable_7pyarrow_8_compute__ExtractRegexSpanOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ExtractRegexSpanOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ExtractRegexSpanOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ExtractRegexSpanOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ExtractRegexSpanOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ExtractRegexSpanOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_ExtractRegexSpanOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_ExtractRegexSpanOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ExtractRegexSpanOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ExtractRegexSpanOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ExtractRegexSpanOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ExtractRegexSpanOptions_spec = {
  "pyarrow._compute._ExtractRegexSpanOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ExtractRegexSpanOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ExtractRegexSpanOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ExtractRegexSpanOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ExtractRegexSpanOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ExtractRegexSpanOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__SliceOptions __pyx_vtable_7pyarrow_8_compute__SliceOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__SliceOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__SliceOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__SliceOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__SliceOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__SliceOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SliceOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SliceOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SliceOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SliceOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SliceOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SliceOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__SliceOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__SliceOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__SliceOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__SliceOptions_spec = {
  "pyarrow._compute._SliceOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SliceOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__SliceOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__SliceOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_SliceOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SliceOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__SliceOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__SliceOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ListSliceOptions __pyx_vtable_7pyarrow_8_compute__ListSliceOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ListSliceOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ListSliceOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ListSliceOptions[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_ListSliceOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_ListSliceOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_ListSliceOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ListSliceOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ListSliceOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ListSliceOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ListSliceOptions_spec = {
  "pyarrow._compute._ListSliceOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ListSliceOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ListSliceOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ListSliceOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ListSliceOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ListSliceOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ReplaceSliceOptions __pyx_vtable_7pyarrow_8_compute__ReplaceSliceOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ReplaceSliceOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ReplaceSliceOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ReplaceSliceOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ReplaceSliceOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ReplaceSliceOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_ReplaceSliceOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_ReplaceSliceOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ReplaceSliceOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ReplaceSliceOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ReplaceSliceOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ReplaceSliceOptions_spec = {
  "pyarrow._compute._ReplaceSliceOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ReplaceSliceOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ReplaceSliceOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ReplaceSliceOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ReplaceSliceOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ReplaceSliceOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__FilterOptions __pyx_vtable_7pyarrow_8_compute__FilterOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__FilterOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__FilterOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__FilterOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__FilterOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__FilterOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_FilterOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_FilterOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_FilterOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_FilterOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_FilterOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_FilterOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__FilterOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__FilterOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__FilterOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__FilterOptions_spec = {
  "pyarrow._compute._FilterOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__FilterOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__FilterOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__FilterOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_FilterOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__FilterOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__FilterOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__FilterOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__DictionaryEncodeOptions __pyx_vtable_7pyarrow_8_compute__DictionaryEncodeOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__DictionaryEncodeOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__DictionaryEncodeOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__DictionaryEncodeOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_DictionaryEncodeOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_DictionaryEncodeOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_24_DictionaryEncodeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_24_DictionaryEncodeOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__DictionaryEncodeOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__DictionaryEncodeOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__DictionaryEncodeOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__DictionaryEncodeOptions_spec = {
  "pyarrow._compute._DictionaryEncodeOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__DictionaryEncodeOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__DictionaryEncodeOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_DictionaryEncodeOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__DictionaryEncodeOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__DictionaryEncodeOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__RunEndEncodeOptions __pyx_vtable_7pyarrow_8_compute__RunEndEncodeOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__RunEndEncodeOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__RunEndEncodeOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__RunEndEncodeOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RunEndEncodeOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RunEndEncodeOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RunEndEncodeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RunEndEncodeOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__RunEndEncodeOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__RunEndEncodeOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__RunEndEncodeOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__RunEndEncodeOptions_spec = {
  "pyarrow._compute._RunEndEncodeOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__RunEndEncodeOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__RunEndEncodeOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_RunEndEncodeOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__RunEndEncodeOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__RunEndEncodeOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__InversePermutationOptions __pyx_vtable_7pyarrow_8_compute__InversePermutationOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__InversePermutationOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__InversePermutationOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__InversePermutationOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_26_InversePermutationOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_26_InversePermutationOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_26_InversePermutationOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_26_InversePermutationOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__InversePermutationOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__InversePermutationOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__InversePermutationOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__InversePermutationOptions_spec = {
  "pyarrow._compute._InversePermutationOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__InversePermutationOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__InversePermutationOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_InversePermutationOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__InversePermutationOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__InversePermutationOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ScatterOptions __pyx_vtable_7pyarrow_8_compute__ScatterOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ScatterOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ScatterOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ScatterOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ScatterOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ScatterOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_ScatterOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_ScatterOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_ScatterOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_ScatterOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ScatterOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ScatterOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ScatterOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ScatterOptions_spec = {
  "pyarrow._compute._ScatterOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ScatterOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ScatterOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ScatterOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ScatterOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ScatterOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ScatterOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ScatterOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__TakeOptions __pyx_vtable_7pyarrow_8_compute__TakeOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__TakeOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__TakeOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__TakeOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__TakeOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__TakeOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TakeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TakeOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TakeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TakeOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_TakeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_TakeOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__TakeOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__TakeOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__TakeOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__TakeOptions_spec = {
  "pyarrow._compute._TakeOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__TakeOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__TakeOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__TakeOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_TakeOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__TakeOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__TakeOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__TakeOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__MakeStructOptions __pyx_vtable_7pyarrow_8_compute__MakeStructOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__MakeStructOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__MakeStructOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__MakeStructOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_MakeStructOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_MakeStructOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_MakeStructOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_MakeStructOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__MakeStructOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__MakeStructOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__MakeStructOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__MakeStructOptions_spec = {
  "pyarrow._compute._MakeStructOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__MakeStructOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__MakeStructOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_MakeStructOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__MakeStructOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__MakeStructOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__StructFieldOptions __pyx_vtable_7pyarrow_8_compute__StructFieldOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__StructFieldOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__StructFieldOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__StructFieldOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_StructFieldOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_StructFieldOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_StructFieldOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_StructFieldOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__StructFieldOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__StructFieldOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__StructFieldOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__StructFieldOptions_spec = {
  "pyarrow._compute._StructFieldOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__StructFieldOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__StructFieldOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_StructFieldOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__StructFieldOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__StructFieldOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ScalarAggregateOptions __pyx_vtable_7pyarrow_8_compute__ScalarAggregateOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ScalarAggregateOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ScalarAggregateOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ScalarAggregateOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_ScalarAggregateOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_ScalarAggregateOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_23_ScalarAggregateOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_23_ScalarAggregateOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ScalarAggregateOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ScalarAggregateOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ScalarAggregateOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ScalarAggregateOptions_spec = {
  "pyarrow._compute._ScalarAggregateOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ScalarAggregateOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ScalarAggregateOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ScalarAggregateOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ScalarAggregateOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ScalarAggregateOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__CountOptions __pyx_vtable_7pyarrow_8_compute__CountOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__CountOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__CountOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__CountOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__CountOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__CountOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_CountOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_CountOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_CountOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_CountOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_CountOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_CountOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__CountOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__CountOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__CountOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__CountOptions_spec = {
  "pyarrow._compute._CountOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__CountOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__CountOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__CountOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_CountOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__CountOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__CountOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__CountOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__IndexOptions __pyx_vtable_7pyarrow_8_compute__IndexOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__IndexOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__IndexOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__IndexOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__IndexOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__IndexOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_IndexOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_IndexOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_IndexOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_IndexOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_IndexOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_IndexOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__IndexOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__IndexOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__IndexOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__IndexOptions_spec = {
  "pyarrow._compute._IndexOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__IndexOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__IndexOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__IndexOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_IndexOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__IndexOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__IndexOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__IndexOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__MapLookupOptions __pyx_vtable_7pyarrow_8_compute__MapLookupOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__MapLookupOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__MapLookupOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__MapLookupOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_MapLookupOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_MapLookupOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_MapLookupOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_MapLookupOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__MapLookupOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__MapLookupOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__MapLookupOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__MapLookupOptions_spec = {
  "pyarrow._compute._MapLookupOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__MapLookupOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__MapLookupOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_MapLookupOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__MapLookupOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__MapLookupOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ModeOptions __pyx_vtable_7pyarrow_8_compute__ModeOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ModeOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ModeOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ModeOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ModeOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ModeOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_ModeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_ModeOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_ModeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_ModeOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_ModeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_ModeOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ModeOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ModeOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ModeOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ModeOptions_spec = {
  "pyarrow._compute._ModeOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ModeOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ModeOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ModeOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ModeOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ModeOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ModeOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ModeOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__SetLookupOptions __pyx_vtable_7pyarrow_8_compute__SetLookupOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__SetLookupOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__SetLookupOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__SetLookupOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_SetLookupOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_SetLookupOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_SetLookupOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_SetLookupOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__SetLookupOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__SetLookupOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__SetLookupOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__SetLookupOptions_spec = {
  "pyarrow._compute._SetLookupOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__SetLookupOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__SetLookupOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_SetLookupOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__SetLookupOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__SetLookupOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__StrptimeOptions __pyx_vtable_7pyarrow_8_compute__StrptimeOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__StrptimeOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__StrptimeOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__StrptimeOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrptimeOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrptimeOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrptimeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrptimeOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__StrptimeOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__StrptimeOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__StrptimeOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__StrptimeOptions_spec = {
  "pyarrow._compute._StrptimeOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__StrptimeOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__StrptimeOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_StrptimeOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__StrptimeOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__StrptimeOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__StrftimeOptions __pyx_vtable_7pyarrow_8_compute__StrftimeOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__StrftimeOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__StrftimeOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__StrftimeOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrftimeOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrftimeOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_StrftimeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_StrftimeOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__StrftimeOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__StrftimeOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__StrftimeOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__StrftimeOptions_spec = {
  "pyarrow._compute._StrftimeOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__StrftimeOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__StrftimeOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_StrftimeOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__StrftimeOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__StrftimeOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__DayOfWeekOptions __pyx_vtable_7pyarrow_8_compute__DayOfWeekOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__DayOfWeekOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__DayOfWeekOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__DayOfWeekOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_DayOfWeekOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_DayOfWeekOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_DayOfWeekOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_DayOfWeekOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__DayOfWeekOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__DayOfWeekOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__DayOfWeekOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__DayOfWeekOptions_spec = {
  "pyarrow._compute._DayOfWeekOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__DayOfWeekOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__DayOfWeekOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_DayOfWeekOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__DayOfWeekOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__DayOfWeekOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__WeekOptions __pyx_vtable_7pyarrow_8_compute__WeekOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__WeekOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__WeekOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__WeekOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__WeekOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__WeekOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_WeekOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_WeekOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_WeekOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_WeekOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_WeekOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_WeekOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__WeekOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__WeekOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__WeekOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__WeekOptions_spec = {
  "pyarrow._compute._WeekOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__WeekOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__WeekOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__WeekOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_WeekOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__WeekOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__WeekOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__WeekOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__AssumeTimezoneOptions __pyx_vtable_7pyarrow_8_compute__AssumeTimezoneOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__AssumeTimezoneOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__AssumeTimezoneOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__AssumeTimezoneOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_AssumeTimezoneOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_AssumeTimezoneOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_22_AssumeTimezoneOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_22_AssumeTimezoneOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__AssumeTimezoneOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__AssumeTimezoneOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__AssumeTimezoneOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__AssumeTimezoneOptions_spec = {
  "pyarrow._compute._AssumeTimezoneOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__AssumeTimezoneOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__AssumeTimezoneOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_AssumeTimezoneOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__AssumeTimezoneOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__AssumeTimezoneOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__NullOptions __pyx_vtable_7pyarrow_8_compute__NullOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__NullOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__NullOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__NullOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__NullOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__NullOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_NullOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_NullOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_NullOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_NullOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_NullOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_NullOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__NullOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__NullOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__NullOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__NullOptions_spec = {
  "pyarrow._compute._NullOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__NullOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__NullOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__NullOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_NullOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__NullOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__NullOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__NullOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__VarianceOptions __pyx_vtable_7pyarrow_8_compute__VarianceOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__VarianceOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__VarianceOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__VarianceOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__VarianceOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__VarianceOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_VarianceOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_VarianceOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_VarianceOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_VarianceOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__VarianceOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__VarianceOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__VarianceOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__VarianceOptions_spec = {
  "pyarrow._compute._VarianceOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__VarianceOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__VarianceOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__VarianceOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_VarianceOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__VarianceOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__VarianceOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__VarianceOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__SkewOptions __pyx_vtable_7pyarrow_8_compute__SkewOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__SkewOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__SkewOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__SkewOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__SkewOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__SkewOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SkewOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SkewOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SkewOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SkewOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_SkewOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_SkewOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__SkewOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__SkewOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__SkewOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__SkewOptions_spec = {
  "pyarrow._compute._SkewOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SkewOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__SkewOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__SkewOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_SkewOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SkewOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__SkewOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__SkewOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__SplitOptions __pyx_vtable_7pyarrow_8_compute__SplitOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__SplitOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__SplitOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__SplitOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__SplitOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__SplitOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SplitOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SplitOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SplitOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SplitOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_13_SplitOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_13_SplitOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__SplitOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__SplitOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__SplitOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__SplitOptions_spec = {
  "pyarrow._compute._SplitOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SplitOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__SplitOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__SplitOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_SplitOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SplitOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__SplitOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__SplitOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__SplitPatternOptions __pyx_vtable_7pyarrow_8_compute__SplitPatternOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__SplitPatternOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__SplitPatternOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__SplitPatternOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_SplitPatternOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_SplitPatternOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_SplitPatternOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_SplitPatternOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__SplitPatternOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__SplitPatternOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__SplitPatternOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__SplitPatternOptions_spec = {
  "pyarrow._compute._SplitPatternOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__SplitPatternOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__SplitPatternOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_SplitPatternOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__SplitPatternOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__SplitPatternOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__PartitionNthOptions __pyx_vtable_7pyarrow_8_compute__PartitionNthOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__PartitionNthOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__PartitionNthOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__PartitionNthOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_PartitionNthOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_PartitionNthOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_PartitionNthOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_PartitionNthOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__PartitionNthOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__PartitionNthOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__PartitionNthOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__PartitionNthOptions_spec = {
  "pyarrow._compute._PartitionNthOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__PartitionNthOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__PartitionNthOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_PartitionNthOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__PartitionNthOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__PartitionNthOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__WinsorizeOptions __pyx_vtable_7pyarrow_8_compute__WinsorizeOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__WinsorizeOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__WinsorizeOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__WinsorizeOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_WinsorizeOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_WinsorizeOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_WinsorizeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_WinsorizeOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__WinsorizeOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__WinsorizeOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__WinsorizeOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__WinsorizeOptions_spec = {
  "pyarrow._compute._WinsorizeOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__WinsorizeOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__WinsorizeOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_WinsorizeOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__WinsorizeOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__WinsorizeOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__CumulativeOptions __pyx_vtable_7pyarrow_8_compute__CumulativeOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__CumulativeOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__CumulativeOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__CumulativeOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_CumulativeOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_CumulativeOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_CumulativeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_CumulativeOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__CumulativeOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__CumulativeOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__CumulativeOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__CumulativeOptions_spec = {
  "pyarrow._compute._CumulativeOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__CumulativeOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__CumulativeOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_CumulativeOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__CumulativeOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__CumulativeOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__PairwiseOptions __pyx_vtable_7pyarrow_8_compute__PairwiseOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__PairwiseOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__PairwiseOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__PairwiseOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_PairwiseOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_PairwiseOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_PairwiseOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_PairwiseOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__PairwiseOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__PairwiseOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__PairwiseOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__PairwiseOptions_spec = {
  "pyarrow._compute._PairwiseOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__PairwiseOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__PairwiseOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_PairwiseOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__PairwiseOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__PairwiseOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ListFlattenOptions __pyx_vtable_7pyarrow_8_compute__ListFlattenOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ListFlattenOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ListFlattenOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ListFlattenOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_ListFlattenOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_ListFlattenOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_19_ListFlattenOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_19_ListFlattenOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ListFlattenOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ListFlattenOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ListFlattenOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ListFlattenOptions_spec = {
  "pyarrow._compute._ListFlattenOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ListFlattenOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ListFlattenOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ListFlattenOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ListFlattenOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ListFlattenOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__ArraySortOptions __pyx_vtable_7pyarrow_8_compute__ArraySortOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__ArraySortOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__ArraySortOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__ArraySortOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_ArraySortOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_ArraySortOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_17_ArraySortOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_17_ArraySortOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__ArraySortOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__ArraySortOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__ArraySortOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__ArraySortOptions_spec = {
  "pyarrow._compute._ArraySortOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__ArraySortOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__ArraySortOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_ArraySortOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__ArraySortOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__ArraySortOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__SelectKOptions __pyx_vtable_7pyarrow_8_compute__SelectKOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__SelectKOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__SelectKOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__SelectKOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__SelectKOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__SelectKOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_SelectKOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_SelectKOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_SelectKOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_SelectKOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__SelectKOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__SelectKOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__SelectKOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__SelectKOptions_spec = {
  "pyarrow._compute._SelectKOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SelectKOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__SelectKOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__SelectKOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_SelectKOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__SelectKOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__SelectKOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__SelectKOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__QuantileOptions __pyx_vtable_7pyarrow_8_compute__QuantileOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__QuantileOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__QuantileOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__QuantileOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__QuantileOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__QuantileOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_QuantileOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_QuantileOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_16_QuantileOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_16_QuantileOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__QuantileOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__QuantileOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__QuantileOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__QuantileOptions_spec = {
  "pyarrow._compute._QuantileOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__QuantileOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__QuantileOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__QuantileOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_QuantileOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__QuantileOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__QuantileOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__QuantileOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__TDigestOptions __pyx_vtable_7pyarrow_8_compute__TDigestOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__TDigestOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__TDigestOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__TDigestOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__TDigestOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__TDigestOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_TDigestOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_TDigestOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_15_TDigestOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_15_TDigestOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__TDigestOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__TDigestOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__TDigestOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__TDigestOptions_spec = {
  "pyarrow._compute._TDigestOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__TDigestOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__TDigestOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__TDigestOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_TDigestOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__TDigestOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__TDigestOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__TDigestOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__Utf8NormalizeOptions __pyx_vtable_7pyarrow_8_compute__Utf8NormalizeOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__Utf8NormalizeOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__Utf8NormalizeOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__Utf8NormalizeOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_Utf8NormalizeOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_Utf8NormalizeOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_21_Utf8NormalizeOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_21_Utf8NormalizeOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__Utf8NormalizeOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__Utf8NormalizeOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__Utf8NormalizeOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__Utf8NormalizeOptions_spec = {
  "pyarrow._compute._Utf8NormalizeOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__Utf8NormalizeOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__Utf8NormalizeOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_Utf8NormalizeOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__Utf8NormalizeOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__Utf8NormalizeOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__RandomOptions __pyx_vtable_7pyarrow_8_compute__RandomOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__RandomOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__RandomOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__RandomOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__RandomOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__RandomOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_RandomOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_RandomOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_RandomOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_RandomOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_14_RandomOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_14_RandomOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__RandomOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__RandomOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__RandomOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__RandomOptions_spec = {
  "pyarrow._compute._RandomOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RandomOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__RandomOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__RandomOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_RandomOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RandomOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__RandomOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__RandomOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__RankOptions __pyx_vtable_7pyarrow_8_compute__RankOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__RankOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__RankOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__RankOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__RankOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__RankOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_RankOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_RankOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_RankOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_RankOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_12_RankOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_12_RankOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__RankOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__RankOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__RankOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__RankOptions_spec = {
  "pyarrow._compute._RankOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RankOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__RankOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__RankOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_RankOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RankOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__RankOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__RankOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__RankQuantileOptions __pyx_vtable_7pyarrow_8_compute__RankQuantileOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__RankQuantileOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__RankQuantileOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__RankQuantileOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RankQuantileOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RankQuantileOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_20_RankQuantileOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_20_RankQuantileOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__RankQuantileOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__RankQuantileOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__RankQuantileOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__RankQuantileOptions_spec = {
  "pyarrow._compute._RankQuantileOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__RankQuantileOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__RankQuantileOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_RankQuantileOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__RankQuantileOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__RankQuantileOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute__PivotWiderOptions __pyx_vtable_7pyarrow_8_compute__PivotWiderOptions;

static PyObject *__pyx_tp_new_7pyarrow_8_compute__PivotWiderOptions(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions *p;
  PyObject *o = __pyx_tp_new_7pyarrow_8_compute_FunctionOptions(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_7pyarrow_8_compute_FunctionOptions*)__pyx_vtabptr_7pyarrow_8_compute__PivotWiderOptions;
  return o;
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute__PivotWiderOptions[] = {
  {"_set_options", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_1_set_options, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_PivotWiderOptions__set_options},
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_PivotWiderOptions_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_18_PivotWiderOptions_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_18_PivotWiderOptions_4__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute__PivotWiderOptions_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute__PivotWiderOptions},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute__PivotWiderOptions},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute__PivotWiderOptions_spec = {
  "pyarrow._compute._PivotWiderOptions",
  sizeof(struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute__PivotWiderOptions_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute__PivotWiderOptions = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""_PivotWiderOptions", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_FunctionOptions, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_7pyarrow_8_compute_15FunctionOptions_5__repr__, /*tp_repr*/
  #else
  0, /*tp_repr*/
  #endif
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute__PivotWiderOptions, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute__PivotWiderOptions, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_7pyarrow_8_compute_RegisterUdf __pyx_vtable_7pyarrow_8_compute_RegisterUdf;

static PyObject *__pyx_tp_new_7pyarrow_8_compute_RegisterUdf(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *p;
  PyObject *o = __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_new, newfunc)(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *)o);
  p->__pyx_vtab = __pyx_vtabptr_7pyarrow_8_compute_RegisterUdf;
  return o;
}

static void __pyx_tp_dealloc_7pyarrow_8_compute_RegisterUdf(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyarrow_8_compute_RegisterUdf) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if !CYTHON_USE_MODULE_STATE
  if (likely(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable)) __Pyx_PyType_GetSlot(__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable, tp_dealloc, destructor)(o); else
  #endif
  __Pyx_call_next_tp_dealloc(o, __pyx_tp_dealloc_7pyarrow_8_compute_RegisterUdf);
}

static PyMethodDef __pyx_methods_7pyarrow_8_compute_RegisterUdf[] = {
  {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11RegisterUdf_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11RegisterUdf___reduce_cython__},
  {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_7pyarrow_8_compute_11RegisterUdf_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_7pyarrow_8_compute_11RegisterUdf_2__setstate_cython__},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute_RegisterUdf_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute_RegisterUdf},
  {Py_tp_methods, (void *)__pyx_methods_7pyarrow_8_compute_RegisterUdf},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute_RegisterUdf},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute_RegisterUdf_spec = {
  "pyarrow._compute.RegisterUdf",
  sizeof(struct __pyx_obj_7pyarrow_8_compute_RegisterUdf),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_7pyarrow_8_compute_RegisterUdf_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute_RegisterUdf = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""RegisterUdf", /*tp_name*/
  sizeof(struct __pyx_obj_7pyarrow_8_compute_RegisterUdf), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute_RegisterUdf, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_7pyarrow_8_compute_RegisterUdf, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute_RegisterUdf, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyObject *__pyx_tp_new_7pyarrow_8_compute___pyx_defaults(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  o = __Pyx_AllocateExtensionType(t, 1);
  if (unlikely(!o)) return 0;
  return o;
}

static void __pyx_tp_dealloc_7pyarrow_8_compute___pyx_defaults(PyObject *o) {
  struct __pyx_defaults *p = (struct __pyx_defaults *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_7pyarrow_8_compute___pyx_defaults) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->arg0);
  PyTypeObject *tp = Py_TYPE(o);
  #if CYTHON_USE_TYPE_SLOTS
  (*tp->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  Py_DECREF(tp);
  #endif
}

static int __pyx_tp_traverse_7pyarrow_8_compute___pyx_defaults(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_defaults *p = (struct __pyx_defaults *)o;
  {
    e = __Pyx_call_type_traverse(o, 1, v, a);
    if (e) return e;
  }
  if (p->arg0) {
    e = (*v)(p->arg0, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_7pyarrow_8_compute___pyx_defaults(PyObject *o) {
  PyObject* tmp;
  struct __pyx_defaults *p = (struct __pyx_defaults *)o;
  tmp = ((PyObject*)p->arg0);
  p->arg0 = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_7pyarrow_8_compute___pyx_defaults_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_7pyarrow_8_compute___pyx_defaults},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_7pyarrow_8_compute___pyx_defaults},
  {Py_tp_clear, (void *)__pyx_tp_clear_7pyarrow_8_compute___pyx_defaults},
  {Py_tp_new, (void *)__pyx_tp_new_7pyarrow_8_compute___pyx_defaults},
  {0, 0},
};
static PyType_Spec __pyx_type_7pyarrow_8_compute___pyx_defaults_spec = {
  "pyarrow._compute.__pyx_defaults",
  sizeof(struct __pyx_defaults),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC,
  __pyx_type_7pyarrow_8_compute___pyx_defaults_slots,
};
#else

static PyTypeObject __pyx_type_7pyarrow_8_compute___pyx_defaults = {
  PyVarObject_HEAD_INIT(0, 0)
  "pyarrow._compute.""__pyx_defaults", /*tp_name*/
  sizeof(struct __pyx_defaults), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_7pyarrow_8_compute___pyx_defaults, /*tp_dealloc*/
  0, /*tp_vectorcall_offset*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_as_async*/
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_7pyarrow_8_compute___pyx_defaults, /*tp_traverse*/
  __pyx_tp_clear_7pyarrow_8_compute___pyx_defaults, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_7pyarrow_8_compute___pyx_defaults, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #if !CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if PY_VERSION_HEX >= 0x030d00A4
  0, /*tp_versions_used*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};
/* #### Code section: initfunc_declarations ### */
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/
/* #### Code section: init_module ### */

static int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __pyx_v_7pyarrow_8_compute__global_func_registry = ((struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *)Py_None); Py_INCREF(Py_None);
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  {
    __pyx_t_1 = __Pyx_ApiExport_GetApiDict(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    const char * __pyx_export_signature = __Pyx_PyBytes_AsString(__pyx_mstate_global->__pyx_kp_b_arrow_compute_Expression__true);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (unlikely(!__pyx_export_signature)) __PYX_ERR(0, 1, __pyx_L1_error)
    #endif
    const char * __pyx_export_name = __pyx_export_signature + 27;
    void *const __pyx_export_pointers[] = {(void *)&__pyx_v_7pyarrow_8_compute__true, (void *) NULL};
    void *const *__pyx_export_pointer = __pyx_export_pointers;
    const char *__pyx_export_current_signature = __pyx_export_signature;
    while (*__pyx_export_pointer) {
      if (__Pyx_ExportVoidPtr(__pyx_t_1, __pyx_export_name, *__pyx_export_pointer, __pyx_export_current_signature) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
      ++__pyx_export_pointer;
      __pyx_export_name = strchr(__pyx_export_name, '\0') + 1;
      __pyx_export_signature = strchr(__pyx_export_signature, '\0') + 1;
      if (*__pyx_export_signature != '\0') __pyx_export_current_signature = __pyx_export_signature;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  {
    __pyx_t_1 = __Pyx_ApiExport_GetApiDict(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    const char * __pyx_export_signature = __Pyx_PyBytes_AsString(__pyx_mstate_global->__pyx_kp_b_arrow_FieldRef_PyObject_arrow_c);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (unlikely(!__pyx_export_signature)) __PYX_ERR(0, 1, __pyx_L1_error)
    #endif
    const char * __pyx_export_name = __pyx_export_signature + 365;
    void (*const __pyx_export_pointers[])(void) = {(void (*)(void))&__pyx_f_7pyarrow_8_compute__ensure_field_ref, (void (*)(void))&__pyx_f_7pyarrow_8_compute_unwrap_null_placement, (void (*)(void))&__pyx_f_7pyarrow_8_compute_unwrap_sort_order, (void (*)(void))&__pyx_f_7pyarrow_8_compute__bind, (void (*)(void))&__pyx_f_7pyarrow_8_compute_unwrap_sort_keys, (void (*)(void)) NULL};
    void (*const *__pyx_export_pointer)(void) = __pyx_export_pointers;
    const char *__pyx_export_current_signature = __pyx_export_signature;
    while (*__pyx_export_pointer) {
      if (__Pyx_ExportFunction(__pyx_t_1, __pyx_export_name, *__pyx_export_pointer, __pyx_export_current_signature) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
      ++__pyx_export_pointer;
      __pyx_export_name = strchr(__pyx_export_name, '\0') + 1;
      __pyx_export_signature = strchr(__pyx_export_signature, '\0') + 1;
      if (*__pyx_export_signature != '\0') __pyx_export_current_signature = __pyx_export_signature;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_init_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  __pyx_t_1 = PyImport_ImportModule("pyarrow.lib"); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib__Weakrefable = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "_Weakrefable",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib__Weakrefable), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__Weakrefable),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib__Weakrefable), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__Weakrefable),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib__Weakrefable), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__Weakrefable),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib__Weakrefable) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute_UdfContext = &__pyx_vtable_7pyarrow_8_compute_UdfContext;
  __pyx_vtable_7pyarrow_8_compute_UdfContext.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_UdfContext *,  arrow::py::UdfContext const &))__pyx_f_7pyarrow_8_compute_10UdfContext_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_UdfContext_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext)) __PYX_ERR(0, 2942, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_UdfContext_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext) < (0)) __PYX_ERR(0, 2942, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext = &__pyx_type_7pyarrow_8_compute_UdfContext;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_UdfContext->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext) < (0)) __PYX_ERR(0, 2942, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext, __pyx_vtabptr_7pyarrow_8_compute_UdfContext) < (0)) __PYX_ERR(0, 2942, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext) < (0)) __PYX_ERR(0, 2942, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_UdfContext, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext) < (0)) __PYX_ERR(0, 2942, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_UdfContext, __pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_UdfContext) < (0)) __PYX_ERR(0, 2942, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute_FunctionOptions = &__pyx_vtable_7pyarrow_8_compute_FunctionOptions;
  __pyx_vtable_7pyarrow_8_compute_FunctionOptions.get_options = ( arrow::compute::FunctionOptions const *(*)(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *))__pyx_f_7pyarrow_8_compute_15FunctionOptions_get_options;
  __pyx_vtable_7pyarrow_8_compute_FunctionOptions.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *, std::shared_ptr< arrow::compute::FunctionOptions>  const &))__pyx_f_7pyarrow_8_compute_15FunctionOptions_init;
  __pyx_vtable_7pyarrow_8_compute_FunctionOptions.unwrap = (std::shared_ptr< arrow::compute::FunctionOptions>  (*)(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *))__pyx_f_7pyarrow_8_compute_15FunctionOptions_unwrap;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 608, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_FunctionOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions)) __PYX_ERR(0, 608, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_FunctionOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions) < (0)) __PYX_ERR(0, 608, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions = &__pyx_type_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions) < (0)) __PYX_ERR(0, 608, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions, __pyx_vtabptr_7pyarrow_8_compute_FunctionOptions) < (0)) __PYX_ERR(0, 608, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions) < (0)) __PYX_ERR(0, 608, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FunctionOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions) < (0)) __PYX_ERR(0, 608, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions, __pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionOptions) < (0)) __PYX_ERR(0, 608, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__SortOptions = &__pyx_vtable_7pyarrow_8_compute__SortOptions;
  __pyx_vtable_7pyarrow_8_compute__SortOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__SortOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions)) __PYX_ERR(0, 2246, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__SortOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions) < (0)) __PYX_ERR(0, 2246, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions = &__pyx_type_7pyarrow_8_compute__SortOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SortOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions) < (0)) __PYX_ERR(0, 2246, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions, __pyx_vtabptr_7pyarrow_8_compute__SortOptions) < (0)) __PYX_ERR(0, 2246, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions) < (0)) __PYX_ERR(0, 2246, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SortOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions) < (0)) __PYX_ERR(0, 2246, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__SortOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SortOptions) < (0)) __PYX_ERR(0, 2246, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute_Expression = &__pyx_vtable_7pyarrow_8_compute_Expression;
  __pyx_vtable_7pyarrow_8_compute_Expression.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_Expression *, arrow::compute::Expression const &))__pyx_f_7pyarrow_8_compute_10Expression_init;
  __pyx_vtable_7pyarrow_8_compute_Expression.wrap = (PyObject *(*)(arrow::compute::Expression const &))__pyx_f_7pyarrow_8_compute_10Expression_wrap;
  __pyx_vtable_7pyarrow_8_compute_Expression.unwrap = (arrow::compute::Expression (*)(struct __pyx_obj_7pyarrow_8_compute_Expression *))__pyx_f_7pyarrow_8_compute_10Expression_unwrap;
  __pyx_vtable_7pyarrow_8_compute_Expression._expr_or_scalar = (struct __pyx_obj_7pyarrow_8_compute_Expression *(*)(PyObject *))__pyx_f_7pyarrow_8_compute_10Expression__expr_or_scalar;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2581, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_Expression_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression)) __PYX_ERR(0, 2581, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_Expression_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression) < (0)) __PYX_ERR(0, 2581, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression = &__pyx_type_7pyarrow_8_compute_Expression;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression) < (0)) __PYX_ERR(0, 2581, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_vtabptr_7pyarrow_8_compute_Expression) < (0)) __PYX_ERR(0, 2581, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression) < (0)) __PYX_ERR(0, 2581, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Expression, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression) < (0)) __PYX_ERR(0, 2581, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Expression->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_Expression, __pyx_base.__weakref__);
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_Kernel_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel)) __PYX_ERR(0, 196, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_Kernel_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel) < (0)) __PYX_ERR(0, 196, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel = &__pyx_type_7pyarrow_8_compute_Kernel;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel) < (0)) __PYX_ERR(0, 196, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Kernel, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel) < (0)) __PYX_ERR(0, 196, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_Kernel, __pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Kernel) < (0)) __PYX_ERR(0, 196, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute_ScalarKernel = &__pyx_vtable_7pyarrow_8_compute_ScalarKernel;
  __pyx_vtable_7pyarrow_8_compute_ScalarKernel.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_ScalarKernel *,  arrow::compute::ScalarKernel const *))__pyx_f_7pyarrow_8_compute_12ScalarKernel_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_ScalarKernel_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel)) __PYX_ERR(0, 207, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_ScalarKernel_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel) < (0)) __PYX_ERR(0, 207, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel = &__pyx_type_7pyarrow_8_compute_ScalarKernel;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_ScalarKernel->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel) < (0)) __PYX_ERR(0, 207, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel, __pyx_vtabptr_7pyarrow_8_compute_ScalarKernel) < (0)) __PYX_ERR(0, 207, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel) < (0)) __PYX_ERR(0, 207, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ScalarKernel_2, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel) < (0)) __PYX_ERR(0, 207, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_ScalarKernel, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarKernel) < (0)) __PYX_ERR(0, 207, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute_VectorKernel = &__pyx_vtable_7pyarrow_8_compute_VectorKernel;
  __pyx_vtable_7pyarrow_8_compute_VectorKernel.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_VectorKernel *,  arrow::compute::VectorKernel const *))__pyx_f_7pyarrow_8_compute_12VectorKernel_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_VectorKernel_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel)) __PYX_ERR(0, 217, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_VectorKernel_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel) < (0)) __PYX_ERR(0, 217, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel = &__pyx_type_7pyarrow_8_compute_VectorKernel;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_VectorKernel->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel) < (0)) __PYX_ERR(0, 217, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel, __pyx_vtabptr_7pyarrow_8_compute_VectorKernel) < (0)) __PYX_ERR(0, 217, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel) < (0)) __PYX_ERR(0, 217, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VectorKernel_2, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel) < (0)) __PYX_ERR(0, 217, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_VectorKernel, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorKernel) < (0)) __PYX_ERR(0, 217, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute_ScalarAggregateKernel = &__pyx_vtable_7pyarrow_8_compute_ScalarAggregateKernel;
  __pyx_vtable_7pyarrow_8_compute_ScalarAggregateKernel.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel *,  arrow::compute::ScalarAggregateKernel const *))__pyx_f_7pyarrow_8_compute_21ScalarAggregateKernel_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_ScalarAggregateKernel_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel)) __PYX_ERR(0, 227, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_ScalarAggregateKernel_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel) < (0)) __PYX_ERR(0, 227, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel = &__pyx_type_7pyarrow_8_compute_ScalarAggregateKernel;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel) < (0)) __PYX_ERR(0, 227, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel, __pyx_vtabptr_7pyarrow_8_compute_ScalarAggregateKernel) < (0)) __PYX_ERR(0, 227, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel) < (0)) __PYX_ERR(0, 227, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ScalarAggregateKernel_2, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel) < (0)) __PYX_ERR(0, 227, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateKernel, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateKernel) < (0)) __PYX_ERR(0, 227, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute_HashAggregateKernel = &__pyx_vtable_7pyarrow_8_compute_HashAggregateKernel;
  __pyx_vtable_7pyarrow_8_compute_HashAggregateKernel.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel *,  arrow::compute::HashAggregateKernel const *))__pyx_f_7pyarrow_8_compute_19HashAggregateKernel_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_HashAggregateKernel_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel)) __PYX_ERR(0, 237, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_HashAggregateKernel_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel) < (0)) __PYX_ERR(0, 237, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel = &__pyx_type_7pyarrow_8_compute_HashAggregateKernel;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel) < (0)) __PYX_ERR(0, 237, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel, __pyx_vtabptr_7pyarrow_8_compute_HashAggregateKernel) < (0)) __PYX_ERR(0, 237, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel) < (0)) __PYX_ERR(0, 237, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HashAggregateKernel_2, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel) < (0)) __PYX_ERR(0, 237, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_HashAggregateKernel, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateKernel) < (0)) __PYX_ERR(0, 237, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute_Function = &__pyx_vtable_7pyarrow_8_compute_Function;
  __pyx_vtable_7pyarrow_8_compute_Function.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_Function *, std::shared_ptr< arrow::compute::Function>  const &))__pyx_f_7pyarrow_8_compute_8Function_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_Function_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function)) __PYX_ERR(0, 253, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_Function_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function) < (0)) __PYX_ERR(0, 253, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function = &__pyx_type_7pyarrow_8_compute_Function;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function) < (0)) __PYX_ERR(0, 253, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function, __pyx_vtabptr_7pyarrow_8_compute_Function) < (0)) __PYX_ERR(0, 253, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function) < (0)) __PYX_ERR(0, 253, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Function, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function) < (0)) __PYX_ERR(0, 253, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_Function->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_Function, __pyx_base.__weakref__);
  #endif
  __pyx_vtabptr_7pyarrow_8_compute_ScalarFunction = &__pyx_vtable_7pyarrow_8_compute_ScalarFunction;
  __pyx_vtable_7pyarrow_8_compute_ScalarFunction.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_Function;
  __pyx_vtable_7pyarrow_8_compute_ScalarFunction.__pyx_base.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_Function *, std::shared_ptr< arrow::compute::Function>  const &))__pyx_f_7pyarrow_8_compute_14ScalarFunction_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 407, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_ScalarFunction_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction)) __PYX_ERR(0, 407, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_ScalarFunction_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction) < (0)) __PYX_ERR(0, 407, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction = &__pyx_type_7pyarrow_8_compute_ScalarFunction;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_ScalarFunction->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction) < (0)) __PYX_ERR(0, 407, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction, __pyx_vtabptr_7pyarrow_8_compute_ScalarFunction) < (0)) __PYX_ERR(0, 407, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction) < (0)) __PYX_ERR(0, 407, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ScalarFunction, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction) < (0)) __PYX_ERR(0, 407, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarFunction->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_ScalarFunction, __pyx_base.__pyx_base.__weakref__);
  #endif
  __pyx_vtabptr_7pyarrow_8_compute_VectorFunction = &__pyx_vtable_7pyarrow_8_compute_VectorFunction;
  __pyx_vtable_7pyarrow_8_compute_VectorFunction.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_Function;
  __pyx_vtable_7pyarrow_8_compute_VectorFunction.__pyx_base.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_Function *, std::shared_ptr< arrow::compute::Function>  const &))__pyx_f_7pyarrow_8_compute_14VectorFunction_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_VectorFunction_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction)) __PYX_ERR(0, 423, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_VectorFunction_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction) < (0)) __PYX_ERR(0, 423, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction = &__pyx_type_7pyarrow_8_compute_VectorFunction;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_VectorFunction->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction) < (0)) __PYX_ERR(0, 423, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction, __pyx_vtabptr_7pyarrow_8_compute_VectorFunction) < (0)) __PYX_ERR(0, 423, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction) < (0)) __PYX_ERR(0, 423, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VectorFunction, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction) < (0)) __PYX_ERR(0, 423, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_VectorFunction->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_VectorFunction, __pyx_base.__pyx_base.__weakref__);
  #endif
  __pyx_vtabptr_7pyarrow_8_compute_ScalarAggregateFunction = &__pyx_vtable_7pyarrow_8_compute_ScalarAggregateFunction;
  __pyx_vtable_7pyarrow_8_compute_ScalarAggregateFunction.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_Function;
  __pyx_vtable_7pyarrow_8_compute_ScalarAggregateFunction.__pyx_base.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_Function *, std::shared_ptr< arrow::compute::Function>  const &))__pyx_f_7pyarrow_8_compute_23ScalarAggregateFunction_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_ScalarAggregateFunction_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction)) __PYX_ERR(0, 439, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_ScalarAggregateFunction_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction) < (0)) __PYX_ERR(0, 439, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction = &__pyx_type_7pyarrow_8_compute_ScalarAggregateFunction;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction) < (0)) __PYX_ERR(0, 439, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction, __pyx_vtabptr_7pyarrow_8_compute_ScalarAggregateFunction) < (0)) __PYX_ERR(0, 439, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction) < (0)) __PYX_ERR(0, 439, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ScalarAggregateFunction, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction) < (0)) __PYX_ERR(0, 439, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_ScalarAggregateFunction->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_ScalarAggregateFunction, __pyx_base.__pyx_base.__weakref__);
  #endif
  __pyx_vtabptr_7pyarrow_8_compute_HashAggregateFunction = &__pyx_vtable_7pyarrow_8_compute_HashAggregateFunction;
  __pyx_vtable_7pyarrow_8_compute_HashAggregateFunction.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_Function;
  __pyx_vtable_7pyarrow_8_compute_HashAggregateFunction.__pyx_base.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_Function *, std::shared_ptr< arrow::compute::Function>  const &))__pyx_f_7pyarrow_8_compute_21HashAggregateFunction_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_HashAggregateFunction_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction)) __PYX_ERR(0, 456, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_HashAggregateFunction_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction) < (0)) __PYX_ERR(0, 456, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction = &__pyx_type_7pyarrow_8_compute_HashAggregateFunction;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction) < (0)) __PYX_ERR(0, 456, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction, __pyx_vtabptr_7pyarrow_8_compute_HashAggregateFunction) < (0)) __PYX_ERR(0, 456, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction) < (0)) __PYX_ERR(0, 456, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HashAggregateFunction, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction) < (0)) __PYX_ERR(0, 456, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_HashAggregateFunction->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_HashAggregateFunction, __pyx_base.__pyx_base.__weakref__);
  #endif
  __pyx_vtabptr_7pyarrow_8_compute_MetaFunction = &__pyx_vtable_7pyarrow_8_compute_MetaFunction;
  __pyx_vtable_7pyarrow_8_compute_MetaFunction.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_Function;
  __pyx_vtable_7pyarrow_8_compute_MetaFunction.__pyx_base.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_Function *, std::shared_ptr< arrow::compute::Function>  const &))__pyx_f_7pyarrow_8_compute_12MetaFunction_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_MetaFunction_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction)) __PYX_ERR(0, 472, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_MetaFunction_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction) < (0)) __PYX_ERR(0, 472, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction = &__pyx_type_7pyarrow_8_compute_MetaFunction;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_MetaFunction->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction) < (0)) __PYX_ERR(0, 472, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction, __pyx_vtabptr_7pyarrow_8_compute_MetaFunction) < (0)) __PYX_ERR(0, 472, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction) < (0)) __PYX_ERR(0, 472, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MetaFunction, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction) < (0)) __PYX_ERR(0, 472, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_MetaFunction->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_MetaFunction, __pyx_base.__pyx_base.__weakref__);
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_FunctionRegistry_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry)) __PYX_ERR(0, 523, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_FunctionRegistry_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry) < (0)) __PYX_ERR(0, 523, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry = &__pyx_type_7pyarrow_8_compute_FunctionRegistry;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry) < (0)) __PYX_ERR(0, 523, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FunctionRegistry, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry) < (0)) __PYX_ERR(0, 523, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry, __pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry) < (0)) __PYX_ERR(0, 523, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__CastOptions = &__pyx_vtable_7pyarrow_8_compute__CastOptions;
  __pyx_vtable_7pyarrow_8_compute__CastOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  __pyx_vtable_7pyarrow_8_compute__CastOptions.__pyx_base.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_FunctionOptions *, std::shared_ptr< arrow::compute::FunctionOptions>  const &))__pyx_f_7pyarrow_8_compute_12_CastOptions_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__CastOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions)) __PYX_ERR(0, 674, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__CastOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions) < (0)) __PYX_ERR(0, 674, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions = &__pyx_type_7pyarrow_8_compute__CastOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CastOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions) < (0)) __PYX_ERR(0, 674, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions, __pyx_vtabptr_7pyarrow_8_compute__CastOptions) < (0)) __PYX_ERR(0, 674, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions) < (0)) __PYX_ERR(0, 674, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CastOptions_2, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions) < (0)) __PYX_ERR(0, 674, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__CastOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CastOptions) < (0)) __PYX_ERR(0, 674, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ElementWiseAggregateOptions = &__pyx_vtable_7pyarrow_8_compute__ElementWiseAggregateOptions;
  __pyx_vtable_7pyarrow_8_compute__ElementWiseAggregateOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ElementWiseAggregateOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions)) __PYX_ERR(0, 849, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ElementWiseAggregateOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions) < (0)) __PYX_ERR(0, 849, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions = &__pyx_type_7pyarrow_8_compute__ElementWiseAggregateOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions) < (0)) __PYX_ERR(0, 849, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions, __pyx_vtabptr_7pyarrow_8_compute__ElementWiseAggregateOptions) < (0)) __PYX_ERR(0, 849, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions) < (0)) __PYX_ERR(0, 849, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ElementWiseAggregateOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions) < (0)) __PYX_ERR(0, 849, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ElementWiseAggregateOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions) < (0)) __PYX_ERR(0, 849, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__RoundOptions = &__pyx_vtable_7pyarrow_8_compute__RoundOptions;
  __pyx_vtable_7pyarrow_8_compute__RoundOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__RoundOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions)) __PYX_ERR(0, 891, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__RoundOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions) < (0)) __PYX_ERR(0, 891, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions = &__pyx_type_7pyarrow_8_compute__RoundOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions) < (0)) __PYX_ERR(0, 891, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions, __pyx_vtabptr_7pyarrow_8_compute__RoundOptions) < (0)) __PYX_ERR(0, 891, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions) < (0)) __PYX_ERR(0, 891, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RoundOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions) < (0)) __PYX_ERR(0, 891, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__RoundOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundOptions) < (0)) __PYX_ERR(0, 891, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__RoundBinaryOptions = &__pyx_vtable_7pyarrow_8_compute__RoundBinaryOptions;
  __pyx_vtable_7pyarrow_8_compute__RoundBinaryOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__RoundBinaryOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions)) __PYX_ERR(0, 917, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__RoundBinaryOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions) < (0)) __PYX_ERR(0, 917, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions = &__pyx_type_7pyarrow_8_compute__RoundBinaryOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions) < (0)) __PYX_ERR(0, 917, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions, __pyx_vtabptr_7pyarrow_8_compute__RoundBinaryOptions) < (0)) __PYX_ERR(0, 917, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions) < (0)) __PYX_ERR(0, 917, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RoundBinaryOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions) < (0)) __PYX_ERR(0, 917, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__RoundBinaryOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions) < (0)) __PYX_ERR(0, 917, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__RoundTemporalOptions = &__pyx_vtable_7pyarrow_8_compute__RoundTemporalOptions;
  __pyx_vtable_7pyarrow_8_compute__RoundTemporalOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__RoundTemporalOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions)) __PYX_ERR(0, 967, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__RoundTemporalOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions) < (0)) __PYX_ERR(0, 967, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions = &__pyx_type_7pyarrow_8_compute__RoundTemporalOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions) < (0)) __PYX_ERR(0, 967, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions, __pyx_vtabptr_7pyarrow_8_compute__RoundTemporalOptions) < (0)) __PYX_ERR(0, 967, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions) < (0)) __PYX_ERR(0, 967, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RoundTemporalOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions) < (0)) __PYX_ERR(0, 967, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__RoundTemporalOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions) < (0)) __PYX_ERR(0, 967, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__RoundToMultipleOptions = &__pyx_vtable_7pyarrow_8_compute__RoundToMultipleOptions;
  __pyx_vtable_7pyarrow_8_compute__RoundToMultipleOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1030, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__RoundToMultipleOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions)) __PYX_ERR(0, 1030, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__RoundToMultipleOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions) < (0)) __PYX_ERR(0, 1030, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions = &__pyx_type_7pyarrow_8_compute__RoundToMultipleOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions) < (0)) __PYX_ERR(0, 1030, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions, __pyx_vtabptr_7pyarrow_8_compute__RoundToMultipleOptions) < (0)) __PYX_ERR(0, 1030, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions) < (0)) __PYX_ERR(0, 1030, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RoundToMultipleOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions) < (0)) __PYX_ERR(0, 1030, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__RoundToMultipleOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions) < (0)) __PYX_ERR(0, 1030, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__JoinOptions = &__pyx_vtable_7pyarrow_8_compute__JoinOptions;
  __pyx_vtable_7pyarrow_8_compute__JoinOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1066, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__JoinOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions)) __PYX_ERR(0, 1066, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__JoinOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions) < (0)) __PYX_ERR(0, 1066, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions = &__pyx_type_7pyarrow_8_compute__JoinOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__JoinOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions) < (0)) __PYX_ERR(0, 1066, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions, __pyx_vtabptr_7pyarrow_8_compute__JoinOptions) < (0)) __PYX_ERR(0, 1066, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions) < (0)) __PYX_ERR(0, 1066, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_JoinOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions) < (0)) __PYX_ERR(0, 1066, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__JoinOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__JoinOptions) < (0)) __PYX_ERR(0, 1066, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__MatchSubstringOptions = &__pyx_vtable_7pyarrow_8_compute__MatchSubstringOptions;
  __pyx_vtable_7pyarrow_8_compute__MatchSubstringOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__MatchSubstringOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions)) __PYX_ERR(0, 1101, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__MatchSubstringOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions) < (0)) __PYX_ERR(0, 1101, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions = &__pyx_type_7pyarrow_8_compute__MatchSubstringOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions) < (0)) __PYX_ERR(0, 1101, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions, __pyx_vtabptr_7pyarrow_8_compute__MatchSubstringOptions) < (0)) __PYX_ERR(0, 1101, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions) < (0)) __PYX_ERR(0, 1101, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MatchSubstringOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions) < (0)) __PYX_ERR(0, 1101, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__MatchSubstringOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions) < (0)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__PadOptions = &__pyx_vtable_7pyarrow_8_compute__PadOptions;
  __pyx_vtable_7pyarrow_8_compute__PadOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__PadOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions)) __PYX_ERR(0, 1124, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__PadOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions) < (0)) __PYX_ERR(0, 1124, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions = &__pyx_type_7pyarrow_8_compute__PadOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PadOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions) < (0)) __PYX_ERR(0, 1124, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions, __pyx_vtabptr_7pyarrow_8_compute__PadOptions) < (0)) __PYX_ERR(0, 1124, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions) < (0)) __PYX_ERR(0, 1124, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PadOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions) < (0)) __PYX_ERR(0, 1124, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__PadOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PadOptions) < (0)) __PYX_ERR(0, 1124, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ZeroFillOptions = &__pyx_vtable_7pyarrow_8_compute__ZeroFillOptions;
  __pyx_vtable_7pyarrow_8_compute__ZeroFillOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ZeroFillOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions)) __PYX_ERR(0, 1149, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ZeroFillOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions) < (0)) __PYX_ERR(0, 1149, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions = &__pyx_type_7pyarrow_8_compute__ZeroFillOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions) < (0)) __PYX_ERR(0, 1149, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions, __pyx_vtabptr_7pyarrow_8_compute__ZeroFillOptions) < (0)) __PYX_ERR(0, 1149, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions) < (0)) __PYX_ERR(0, 1149, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ZeroFillOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions) < (0)) __PYX_ERR(0, 1149, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ZeroFillOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions) < (0)) __PYX_ERR(0, 1149, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__TrimOptions = &__pyx_vtable_7pyarrow_8_compute__TrimOptions;
  __pyx_vtable_7pyarrow_8_compute__TrimOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1179, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__TrimOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions)) __PYX_ERR(0, 1179, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__TrimOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions) < (0)) __PYX_ERR(0, 1179, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions = &__pyx_type_7pyarrow_8_compute__TrimOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__TrimOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions) < (0)) __PYX_ERR(0, 1179, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions, __pyx_vtabptr_7pyarrow_8_compute__TrimOptions) < (0)) __PYX_ERR(0, 1179, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions) < (0)) __PYX_ERR(0, 1179, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TrimOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions) < (0)) __PYX_ERR(0, 1179, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__TrimOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TrimOptions) < (0)) __PYX_ERR(0, 1179, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ReplaceSubstringOptions = &__pyx_vtable_7pyarrow_8_compute__ReplaceSubstringOptions;
  __pyx_vtable_7pyarrow_8_compute__ReplaceSubstringOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ReplaceSubstringOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions)) __PYX_ERR(0, 1198, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ReplaceSubstringOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions) < (0)) __PYX_ERR(0, 1198, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions = &__pyx_type_7pyarrow_8_compute__ReplaceSubstringOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions) < (0)) __PYX_ERR(0, 1198, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions, __pyx_vtabptr_7pyarrow_8_compute__ReplaceSubstringOptions) < (0)) __PYX_ERR(0, 1198, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions) < (0)) __PYX_ERR(0, 1198, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ReplaceSubstringOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions) < (0)) __PYX_ERR(0, 1198, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ReplaceSubstringOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions) < (0)) __PYX_ERR(0, 1198, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ExtractRegexOptions = &__pyx_vtable_7pyarrow_8_compute__ExtractRegexOptions;
  __pyx_vtable_7pyarrow_8_compute__ExtractRegexOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ExtractRegexOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions)) __PYX_ERR(0, 1228, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ExtractRegexOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions) < (0)) __PYX_ERR(0, 1228, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions = &__pyx_type_7pyarrow_8_compute__ExtractRegexOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions) < (0)) __PYX_ERR(0, 1228, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions, __pyx_vtabptr_7pyarrow_8_compute__ExtractRegexOptions) < (0)) __PYX_ERR(0, 1228, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions) < (0)) __PYX_ERR(0, 1228, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ExtractRegexOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions) < (0)) __PYX_ERR(0, 1228, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ExtractRegexOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions) < (0)) __PYX_ERR(0, 1228, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ExtractRegexSpanOptions = &__pyx_vtable_7pyarrow_8_compute__ExtractRegexSpanOptions;
  __pyx_vtable_7pyarrow_8_compute__ExtractRegexSpanOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ExtractRegexSpanOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions)) __PYX_ERR(0, 1247, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ExtractRegexSpanOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions) < (0)) __PYX_ERR(0, 1247, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions = &__pyx_type_7pyarrow_8_compute__ExtractRegexSpanOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions) < (0)) __PYX_ERR(0, 1247, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions, __pyx_vtabptr_7pyarrow_8_compute__ExtractRegexSpanOptions) < (0)) __PYX_ERR(0, 1247, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions) < (0)) __PYX_ERR(0, 1247, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ExtractRegexSpanOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions) < (0)) __PYX_ERR(0, 1247, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ExtractRegexSpanOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions) < (0)) __PYX_ERR(0, 1247, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__SliceOptions = &__pyx_vtable_7pyarrow_8_compute__SliceOptions;
  __pyx_vtable_7pyarrow_8_compute__SliceOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__SliceOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions)) __PYX_ERR(0, 1266, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__SliceOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions) < (0)) __PYX_ERR(0, 1266, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions = &__pyx_type_7pyarrow_8_compute__SliceOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SliceOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions) < (0)) __PYX_ERR(0, 1266, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions, __pyx_vtabptr_7pyarrow_8_compute__SliceOptions) < (0)) __PYX_ERR(0, 1266, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions) < (0)) __PYX_ERR(0, 1266, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SliceOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions) < (0)) __PYX_ERR(0, 1266, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__SliceOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SliceOptions) < (0)) __PYX_ERR(0, 1266, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ListSliceOptions = &__pyx_vtable_7pyarrow_8_compute__ListSliceOptions;
  __pyx_vtable_7pyarrow_8_compute__ListSliceOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  __pyx_vtable_7pyarrow_8_compute__ListSliceOptions._set_options = (PyObject *(*)(struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_7pyarrow_8_compute_17_ListSliceOptions__set_options *__pyx_optional_args))__pyx_f_7pyarrow_8_compute_17_ListSliceOptions__set_options;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ListSliceOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions)) __PYX_ERR(0, 1294, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ListSliceOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions) < (0)) __PYX_ERR(0, 1294, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions = &__pyx_type_7pyarrow_8_compute__ListSliceOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions) < (0)) __PYX_ERR(0, 1294, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions, __pyx_vtabptr_7pyarrow_8_compute__ListSliceOptions) < (0)) __PYX_ERR(0, 1294, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions) < (0)) __PYX_ERR(0, 1294, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ListSliceOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions) < (0)) __PYX_ERR(0, 1294, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ListSliceOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions) < (0)) __PYX_ERR(0, 1294, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ReplaceSliceOptions = &__pyx_vtable_7pyarrow_8_compute__ReplaceSliceOptions;
  __pyx_vtable_7pyarrow_8_compute__ReplaceSliceOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ReplaceSliceOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions)) __PYX_ERR(0, 1333, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ReplaceSliceOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions) < (0)) __PYX_ERR(0, 1333, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions = &__pyx_type_7pyarrow_8_compute__ReplaceSliceOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions) < (0)) __PYX_ERR(0, 1333, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions, __pyx_vtabptr_7pyarrow_8_compute__ReplaceSliceOptions) < (0)) __PYX_ERR(0, 1333, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions) < (0)) __PYX_ERR(0, 1333, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ReplaceSliceOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions) < (0)) __PYX_ERR(0, 1333, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ReplaceSliceOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions) < (0)) __PYX_ERR(0, 1333, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__FilterOptions = &__pyx_vtable_7pyarrow_8_compute__FilterOptions;
  __pyx_vtable_7pyarrow_8_compute__FilterOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__FilterOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions)) __PYX_ERR(0, 1358, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__FilterOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions) < (0)) __PYX_ERR(0, 1358, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions = &__pyx_type_7pyarrow_8_compute__FilterOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__FilterOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions) < (0)) __PYX_ERR(0, 1358, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions, __pyx_vtabptr_7pyarrow_8_compute__FilterOptions) < (0)) __PYX_ERR(0, 1358, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions) < (0)) __PYX_ERR(0, 1358, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FilterOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions) < (0)) __PYX_ERR(0, 1358, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__FilterOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__FilterOptions) < (0)) __PYX_ERR(0, 1358, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__DictionaryEncodeOptions = &__pyx_vtable_7pyarrow_8_compute__DictionaryEncodeOptions;
  __pyx_vtable_7pyarrow_8_compute__DictionaryEncodeOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__DictionaryEncodeOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions)) __PYX_ERR(0, 1391, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__DictionaryEncodeOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions) < (0)) __PYX_ERR(0, 1391, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions = &__pyx_type_7pyarrow_8_compute__DictionaryEncodeOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions) < (0)) __PYX_ERR(0, 1391, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions, __pyx_vtabptr_7pyarrow_8_compute__DictionaryEncodeOptions) < (0)) __PYX_ERR(0, 1391, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions) < (0)) __PYX_ERR(0, 1391, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DictionaryEncodeOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions) < (0)) __PYX_ERR(0, 1391, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__DictionaryEncodeOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions) < (0)) __PYX_ERR(0, 1391, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__RunEndEncodeOptions = &__pyx_vtable_7pyarrow_8_compute__RunEndEncodeOptions;
  __pyx_vtable_7pyarrow_8_compute__RunEndEncodeOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__RunEndEncodeOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions)) __PYX_ERR(0, 1425, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__RunEndEncodeOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions) < (0)) __PYX_ERR(0, 1425, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions = &__pyx_type_7pyarrow_8_compute__RunEndEncodeOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions) < (0)) __PYX_ERR(0, 1425, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions, __pyx_vtabptr_7pyarrow_8_compute__RunEndEncodeOptions) < (0)) __PYX_ERR(0, 1425, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions) < (0)) __PYX_ERR(0, 1425, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RunEndEncodeOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions) < (0)) __PYX_ERR(0, 1425, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__RunEndEncodeOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions) < (0)) __PYX_ERR(0, 1425, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__InversePermutationOptions = &__pyx_vtable_7pyarrow_8_compute__InversePermutationOptions;
  __pyx_vtable_7pyarrow_8_compute__InversePermutationOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__InversePermutationOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions)) __PYX_ERR(0, 1447, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__InversePermutationOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions) < (0)) __PYX_ERR(0, 1447, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions = &__pyx_type_7pyarrow_8_compute__InversePermutationOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions) < (0)) __PYX_ERR(0, 1447, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions, __pyx_vtabptr_7pyarrow_8_compute__InversePermutationOptions) < (0)) __PYX_ERR(0, 1447, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions) < (0)) __PYX_ERR(0, 1447, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_InversePermutationOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions) < (0)) __PYX_ERR(0, 1447, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__InversePermutationOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions) < (0)) __PYX_ERR(0, 1447, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ScatterOptions = &__pyx_vtable_7pyarrow_8_compute__ScatterOptions;
  __pyx_vtable_7pyarrow_8_compute__ScatterOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ScatterOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions)) __PYX_ERR(0, 1479, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ScatterOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions) < (0)) __PYX_ERR(0, 1479, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions = &__pyx_type_7pyarrow_8_compute__ScatterOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ScatterOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions) < (0)) __PYX_ERR(0, 1479, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions, __pyx_vtabptr_7pyarrow_8_compute__ScatterOptions) < (0)) __PYX_ERR(0, 1479, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions) < (0)) __PYX_ERR(0, 1479, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ScatterOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions) < (0)) __PYX_ERR(0, 1479, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ScatterOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScatterOptions) < (0)) __PYX_ERR(0, 1479, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__TakeOptions = &__pyx_vtable_7pyarrow_8_compute__TakeOptions;
  __pyx_vtable_7pyarrow_8_compute__TakeOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__TakeOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions)) __PYX_ERR(0, 1501, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__TakeOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions) < (0)) __PYX_ERR(0, 1501, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions = &__pyx_type_7pyarrow_8_compute__TakeOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__TakeOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions) < (0)) __PYX_ERR(0, 1501, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions, __pyx_vtabptr_7pyarrow_8_compute__TakeOptions) < (0)) __PYX_ERR(0, 1501, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions) < (0)) __PYX_ERR(0, 1501, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TakeOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions) < (0)) __PYX_ERR(0, 1501, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__TakeOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TakeOptions) < (0)) __PYX_ERR(0, 1501, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__MakeStructOptions = &__pyx_vtable_7pyarrow_8_compute__MakeStructOptions;
  __pyx_vtable_7pyarrow_8_compute__MakeStructOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__MakeStructOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions)) __PYX_ERR(0, 1522, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__MakeStructOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions) < (0)) __PYX_ERR(0, 1522, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions = &__pyx_type_7pyarrow_8_compute__MakeStructOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions) < (0)) __PYX_ERR(0, 1522, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions, __pyx_vtabptr_7pyarrow_8_compute__MakeStructOptions) < (0)) __PYX_ERR(0, 1522, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions) < (0)) __PYX_ERR(0, 1522, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MakeStructOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions) < (0)) __PYX_ERR(0, 1522, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__MakeStructOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions) < (0)) __PYX_ERR(0, 1522, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__StructFieldOptions = &__pyx_vtable_7pyarrow_8_compute__StructFieldOptions;
  __pyx_vtable_7pyarrow_8_compute__StructFieldOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__StructFieldOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions)) __PYX_ERR(0, 1588, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__StructFieldOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions) < (0)) __PYX_ERR(0, 1588, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions = &__pyx_type_7pyarrow_8_compute__StructFieldOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions) < (0)) __PYX_ERR(0, 1588, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions, __pyx_vtabptr_7pyarrow_8_compute__StructFieldOptions) < (0)) __PYX_ERR(0, 1588, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions) < (0)) __PYX_ERR(0, 1588, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_StructFieldOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions) < (0)) __PYX_ERR(0, 1588, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__StructFieldOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions) < (0)) __PYX_ERR(0, 1588, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ScalarAggregateOptions = &__pyx_vtable_7pyarrow_8_compute__ScalarAggregateOptions;
  __pyx_vtable_7pyarrow_8_compute__ScalarAggregateOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ScalarAggregateOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions)) __PYX_ERR(0, 1616, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ScalarAggregateOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions) < (0)) __PYX_ERR(0, 1616, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions = &__pyx_type_7pyarrow_8_compute__ScalarAggregateOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions) < (0)) __PYX_ERR(0, 1616, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions, __pyx_vtabptr_7pyarrow_8_compute__ScalarAggregateOptions) < (0)) __PYX_ERR(0, 1616, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions) < (0)) __PYX_ERR(0, 1616, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ScalarAggregateOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions) < (0)) __PYX_ERR(0, 1616, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ScalarAggregateOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions) < (0)) __PYX_ERR(0, 1616, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__CountOptions = &__pyx_vtable_7pyarrow_8_compute__CountOptions;
  __pyx_vtable_7pyarrow_8_compute__CountOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__CountOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions)) __PYX_ERR(0, 1635, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__CountOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions) < (0)) __PYX_ERR(0, 1635, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions = &__pyx_type_7pyarrow_8_compute__CountOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CountOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions) < (0)) __PYX_ERR(0, 1635, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions, __pyx_vtabptr_7pyarrow_8_compute__CountOptions) < (0)) __PYX_ERR(0, 1635, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions) < (0)) __PYX_ERR(0, 1635, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CountOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions) < (0)) __PYX_ERR(0, 1635, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__CountOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CountOptions) < (0)) __PYX_ERR(0, 1635, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__IndexOptions = &__pyx_vtable_7pyarrow_8_compute__IndexOptions;
  __pyx_vtable_7pyarrow_8_compute__IndexOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1664, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__IndexOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions)) __PYX_ERR(0, 1664, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__IndexOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions) < (0)) __PYX_ERR(0, 1664, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions = &__pyx_type_7pyarrow_8_compute__IndexOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__IndexOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions) < (0)) __PYX_ERR(0, 1664, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions, __pyx_vtabptr_7pyarrow_8_compute__IndexOptions) < (0)) __PYX_ERR(0, 1664, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions) < (0)) __PYX_ERR(0, 1664, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IndexOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions) < (0)) __PYX_ERR(0, 1664, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__IndexOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__IndexOptions) < (0)) __PYX_ERR(0, 1664, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__MapLookupOptions = &__pyx_vtable_7pyarrow_8_compute__MapLookupOptions;
  __pyx_vtable_7pyarrow_8_compute__MapLookupOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1683, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__MapLookupOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions)) __PYX_ERR(0, 1683, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__MapLookupOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions) < (0)) __PYX_ERR(0, 1683, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions = &__pyx_type_7pyarrow_8_compute__MapLookupOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions) < (0)) __PYX_ERR(0, 1683, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions, __pyx_vtabptr_7pyarrow_8_compute__MapLookupOptions) < (0)) __PYX_ERR(0, 1683, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions) < (0)) __PYX_ERR(0, 1683, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MapLookupOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions) < (0)) __PYX_ERR(0, 1683, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__MapLookupOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions) < (0)) __PYX_ERR(0, 1683, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ModeOptions = &__pyx_vtable_7pyarrow_8_compute__ModeOptions;
  __pyx_vtable_7pyarrow_8_compute__ModeOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1723, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ModeOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions)) __PYX_ERR(0, 1723, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ModeOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions) < (0)) __PYX_ERR(0, 1723, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions = &__pyx_type_7pyarrow_8_compute__ModeOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ModeOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions) < (0)) __PYX_ERR(0, 1723, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions, __pyx_vtabptr_7pyarrow_8_compute__ModeOptions) < (0)) __PYX_ERR(0, 1723, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions) < (0)) __PYX_ERR(0, 1723, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ModeOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions) < (0)) __PYX_ERR(0, 1723, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ModeOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ModeOptions) < (0)) __PYX_ERR(0, 1723, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__SetLookupOptions = &__pyx_vtable_7pyarrow_8_compute__SetLookupOptions;
  __pyx_vtable_7pyarrow_8_compute__SetLookupOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__SetLookupOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions)) __PYX_ERR(0, 1744, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__SetLookupOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions) < (0)) __PYX_ERR(0, 1744, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions = &__pyx_type_7pyarrow_8_compute__SetLookupOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions) < (0)) __PYX_ERR(0, 1744, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions, __pyx_vtabptr_7pyarrow_8_compute__SetLookupOptions) < (0)) __PYX_ERR(0, 1744, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions) < (0)) __PYX_ERR(0, 1744, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SetLookupOptions_2, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions) < (0)) __PYX_ERR(0, 1744, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__SetLookupOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions) < (0)) __PYX_ERR(0, 1744, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__StrptimeOptions = &__pyx_vtable_7pyarrow_8_compute__StrptimeOptions;
  __pyx_vtable_7pyarrow_8_compute__StrptimeOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__StrptimeOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions)) __PYX_ERR(0, 1780, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__StrptimeOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions) < (0)) __PYX_ERR(0, 1780, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions = &__pyx_type_7pyarrow_8_compute__StrptimeOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions) < (0)) __PYX_ERR(0, 1780, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions, __pyx_vtabptr_7pyarrow_8_compute__StrptimeOptions) < (0)) __PYX_ERR(0, 1780, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions) < (0)) __PYX_ERR(0, 1780, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_StrptimeOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions) < (0)) __PYX_ERR(0, 1780, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__StrptimeOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions) < (0)) __PYX_ERR(0, 1780, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__StrftimeOptions = &__pyx_vtable_7pyarrow_8_compute__StrftimeOptions;
  __pyx_vtable_7pyarrow_8_compute__StrftimeOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__StrftimeOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions)) __PYX_ERR(0, 1820, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__StrftimeOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions) < (0)) __PYX_ERR(0, 1820, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions = &__pyx_type_7pyarrow_8_compute__StrftimeOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions) < (0)) __PYX_ERR(0, 1820, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions, __pyx_vtabptr_7pyarrow_8_compute__StrftimeOptions) < (0)) __PYX_ERR(0, 1820, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions) < (0)) __PYX_ERR(0, 1820, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_StrftimeOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions) < (0)) __PYX_ERR(0, 1820, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__StrftimeOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions) < (0)) __PYX_ERR(0, 1820, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__DayOfWeekOptions = &__pyx_vtable_7pyarrow_8_compute__DayOfWeekOptions;
  __pyx_vtable_7pyarrow_8_compute__DayOfWeekOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__DayOfWeekOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions)) __PYX_ERR(0, 1843, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__DayOfWeekOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions) < (0)) __PYX_ERR(0, 1843, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions = &__pyx_type_7pyarrow_8_compute__DayOfWeekOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions) < (0)) __PYX_ERR(0, 1843, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions, __pyx_vtabptr_7pyarrow_8_compute__DayOfWeekOptions) < (0)) __PYX_ERR(0, 1843, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions) < (0)) __PYX_ERR(0, 1843, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DayOfWeekOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions) < (0)) __PYX_ERR(0, 1843, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__DayOfWeekOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions) < (0)) __PYX_ERR(0, 1843, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__WeekOptions = &__pyx_vtable_7pyarrow_8_compute__WeekOptions;
  __pyx_vtable_7pyarrow_8_compute__WeekOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__WeekOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions)) __PYX_ERR(0, 1867, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__WeekOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions) < (0)) __PYX_ERR(0, 1867, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions = &__pyx_type_7pyarrow_8_compute__WeekOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__WeekOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions) < (0)) __PYX_ERR(0, 1867, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions, __pyx_vtabptr_7pyarrow_8_compute__WeekOptions) < (0)) __PYX_ERR(0, 1867, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions) < (0)) __PYX_ERR(0, 1867, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WeekOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions) < (0)) __PYX_ERR(0, 1867, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__WeekOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WeekOptions) < (0)) __PYX_ERR(0, 1867, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__AssumeTimezoneOptions = &__pyx_vtable_7pyarrow_8_compute__AssumeTimezoneOptions;
  __pyx_vtable_7pyarrow_8_compute__AssumeTimezoneOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__AssumeTimezoneOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions)) __PYX_ERR(0, 1901, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__AssumeTimezoneOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions) < (0)) __PYX_ERR(0, 1901, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions = &__pyx_type_7pyarrow_8_compute__AssumeTimezoneOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions) < (0)) __PYX_ERR(0, 1901, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions, __pyx_vtabptr_7pyarrow_8_compute__AssumeTimezoneOptions) < (0)) __PYX_ERR(0, 1901, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions) < (0)) __PYX_ERR(0, 1901, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AssumeTimezoneOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions) < (0)) __PYX_ERR(0, 1901, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__AssumeTimezoneOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions) < (0)) __PYX_ERR(0, 1901, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__NullOptions = &__pyx_vtable_7pyarrow_8_compute__NullOptions;
  __pyx_vtable_7pyarrow_8_compute__NullOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__NullOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions)) __PYX_ERR(0, 1947, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__NullOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions) < (0)) __PYX_ERR(0, 1947, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions = &__pyx_type_7pyarrow_8_compute__NullOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__NullOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions) < (0)) __PYX_ERR(0, 1947, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions, __pyx_vtabptr_7pyarrow_8_compute__NullOptions) < (0)) __PYX_ERR(0, 1947, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions) < (0)) __PYX_ERR(0, 1947, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NullOptions_2, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions) < (0)) __PYX_ERR(0, 1947, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__NullOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__NullOptions) < (0)) __PYX_ERR(0, 1947, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__VarianceOptions = &__pyx_vtable_7pyarrow_8_compute__VarianceOptions;
  __pyx_vtable_7pyarrow_8_compute__VarianceOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1966, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__VarianceOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions)) __PYX_ERR(0, 1966, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__VarianceOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions) < (0)) __PYX_ERR(0, 1966, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions = &__pyx_type_7pyarrow_8_compute__VarianceOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__VarianceOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions) < (0)) __PYX_ERR(0, 1966, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions, __pyx_vtabptr_7pyarrow_8_compute__VarianceOptions) < (0)) __PYX_ERR(0, 1966, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions) < (0)) __PYX_ERR(0, 1966, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VarianceOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions) < (0)) __PYX_ERR(0, 1966, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__VarianceOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__VarianceOptions) < (0)) __PYX_ERR(0, 1966, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__SkewOptions = &__pyx_vtable_7pyarrow_8_compute__SkewOptions;
  __pyx_vtable_7pyarrow_8_compute__SkewOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__SkewOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions)) __PYX_ERR(0, 1987, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__SkewOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions) < (0)) __PYX_ERR(0, 1987, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions = &__pyx_type_7pyarrow_8_compute__SkewOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SkewOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions) < (0)) __PYX_ERR(0, 1987, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions, __pyx_vtabptr_7pyarrow_8_compute__SkewOptions) < (0)) __PYX_ERR(0, 1987, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions) < (0)) __PYX_ERR(0, 1987, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SkewOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions) < (0)) __PYX_ERR(0, 1987, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__SkewOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SkewOptions) < (0)) __PYX_ERR(0, 1987, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__SplitOptions = &__pyx_vtable_7pyarrow_8_compute__SplitOptions;
  __pyx_vtable_7pyarrow_8_compute__SplitOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__SplitOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions)) __PYX_ERR(0, 2009, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__SplitOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions) < (0)) __PYX_ERR(0, 2009, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions = &__pyx_type_7pyarrow_8_compute__SplitOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SplitOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions) < (0)) __PYX_ERR(0, 2009, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions, __pyx_vtabptr_7pyarrow_8_compute__SplitOptions) < (0)) __PYX_ERR(0, 2009, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions) < (0)) __PYX_ERR(0, 2009, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SplitOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions) < (0)) __PYX_ERR(0, 2009, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__SplitOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitOptions) < (0)) __PYX_ERR(0, 2009, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__SplitPatternOptions = &__pyx_vtable_7pyarrow_8_compute__SplitPatternOptions;
  __pyx_vtable_7pyarrow_8_compute__SplitPatternOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2033, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__SplitPatternOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions)) __PYX_ERR(0, 2033, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__SplitPatternOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions) < (0)) __PYX_ERR(0, 2033, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions = &__pyx_type_7pyarrow_8_compute__SplitPatternOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions) < (0)) __PYX_ERR(0, 2033, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions, __pyx_vtabptr_7pyarrow_8_compute__SplitPatternOptions) < (0)) __PYX_ERR(0, 2033, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions) < (0)) __PYX_ERR(0, 2033, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SplitPatternOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions) < (0)) __PYX_ERR(0, 2033, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__SplitPatternOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions) < (0)) __PYX_ERR(0, 2033, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__PartitionNthOptions = &__pyx_vtable_7pyarrow_8_compute__PartitionNthOptions;
  __pyx_vtable_7pyarrow_8_compute__PartitionNthOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__PartitionNthOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions)) __PYX_ERR(0, 2077, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__PartitionNthOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions) < (0)) __PYX_ERR(0, 2077, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions = &__pyx_type_7pyarrow_8_compute__PartitionNthOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions) < (0)) __PYX_ERR(0, 2077, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions, __pyx_vtabptr_7pyarrow_8_compute__PartitionNthOptions) < (0)) __PYX_ERR(0, 2077, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions) < (0)) __PYX_ERR(0, 2077, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PartitionNthOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions) < (0)) __PYX_ERR(0, 2077, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__PartitionNthOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions) < (0)) __PYX_ERR(0, 2077, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__WinsorizeOptions = &__pyx_vtable_7pyarrow_8_compute__WinsorizeOptions;
  __pyx_vtable_7pyarrow_8_compute__WinsorizeOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__WinsorizeOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions)) __PYX_ERR(0, 2100, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__WinsorizeOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions) < (0)) __PYX_ERR(0, 2100, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions = &__pyx_type_7pyarrow_8_compute__WinsorizeOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions) < (0)) __PYX_ERR(0, 2100, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions, __pyx_vtabptr_7pyarrow_8_compute__WinsorizeOptions) < (0)) __PYX_ERR(0, 2100, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions) < (0)) __PYX_ERR(0, 2100, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WinsorizeOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions) < (0)) __PYX_ERR(0, 2100, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__WinsorizeOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions) < (0)) __PYX_ERR(0, 2100, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__CumulativeOptions = &__pyx_vtable_7pyarrow_8_compute__CumulativeOptions;
  __pyx_vtable_7pyarrow_8_compute__CumulativeOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__CumulativeOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions)) __PYX_ERR(0, 2121, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__CumulativeOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions) < (0)) __PYX_ERR(0, 2121, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions = &__pyx_type_7pyarrow_8_compute__CumulativeOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions) < (0)) __PYX_ERR(0, 2121, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions, __pyx_vtabptr_7pyarrow_8_compute__CumulativeOptions) < (0)) __PYX_ERR(0, 2121, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions) < (0)) __PYX_ERR(0, 2121, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CumulativeOptions_2, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions) < (0)) __PYX_ERR(0, 2121, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__CumulativeOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions) < (0)) __PYX_ERR(0, 2121, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__PairwiseOptions = &__pyx_vtable_7pyarrow_8_compute__PairwiseOptions;
  __pyx_vtable_7pyarrow_8_compute__PairwiseOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__PairwiseOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions)) __PYX_ERR(0, 2183, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__PairwiseOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions) < (0)) __PYX_ERR(0, 2183, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions = &__pyx_type_7pyarrow_8_compute__PairwiseOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions) < (0)) __PYX_ERR(0, 2183, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions, __pyx_vtabptr_7pyarrow_8_compute__PairwiseOptions) < (0)) __PYX_ERR(0, 2183, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions) < (0)) __PYX_ERR(0, 2183, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PairwiseOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions) < (0)) __PYX_ERR(0, 2183, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__PairwiseOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions) < (0)) __PYX_ERR(0, 2183, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ListFlattenOptions = &__pyx_vtable_7pyarrow_8_compute__ListFlattenOptions;
  __pyx_vtable_7pyarrow_8_compute__ListFlattenOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ListFlattenOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions)) __PYX_ERR(0, 2202, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ListFlattenOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions) < (0)) __PYX_ERR(0, 2202, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions = &__pyx_type_7pyarrow_8_compute__ListFlattenOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions) < (0)) __PYX_ERR(0, 2202, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions, __pyx_vtabptr_7pyarrow_8_compute__ListFlattenOptions) < (0)) __PYX_ERR(0, 2202, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions) < (0)) __PYX_ERR(0, 2202, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ListFlattenOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions) < (0)) __PYX_ERR(0, 2202, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ListFlattenOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions) < (0)) __PYX_ERR(0, 2202, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__ArraySortOptions = &__pyx_vtable_7pyarrow_8_compute__ArraySortOptions;
  __pyx_vtable_7pyarrow_8_compute__ArraySortOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__ArraySortOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions)) __PYX_ERR(0, 2222, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__ArraySortOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions) < (0)) __PYX_ERR(0, 2222, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions = &__pyx_type_7pyarrow_8_compute__ArraySortOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions) < (0)) __PYX_ERR(0, 2222, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions, __pyx_vtabptr_7pyarrow_8_compute__ArraySortOptions) < (0)) __PYX_ERR(0, 2222, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions) < (0)) __PYX_ERR(0, 2222, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ArraySortOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions) < (0)) __PYX_ERR(0, 2222, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__ArraySortOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions) < (0)) __PYX_ERR(0, 2222, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__SelectKOptions = &__pyx_vtable_7pyarrow_8_compute__SelectKOptions;
  __pyx_vtable_7pyarrow_8_compute__SelectKOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__SelectKOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions)) __PYX_ERR(0, 2274, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__SelectKOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions) < (0)) __PYX_ERR(0, 2274, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions = &__pyx_type_7pyarrow_8_compute__SelectKOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SelectKOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions) < (0)) __PYX_ERR(0, 2274, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions, __pyx_vtabptr_7pyarrow_8_compute__SelectKOptions) < (0)) __PYX_ERR(0, 2274, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions) < (0)) __PYX_ERR(0, 2274, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SelectKOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions) < (0)) __PYX_ERR(0, 2274, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__SelectKOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__SelectKOptions) < (0)) __PYX_ERR(0, 2274, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__QuantileOptions = &__pyx_vtable_7pyarrow_8_compute__QuantileOptions;
  __pyx_vtable_7pyarrow_8_compute__QuantileOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__QuantileOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions)) __PYX_ERR(0, 2300, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__QuantileOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions) < (0)) __PYX_ERR(0, 2300, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions = &__pyx_type_7pyarrow_8_compute__QuantileOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__QuantileOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions) < (0)) __PYX_ERR(0, 2300, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions, __pyx_vtabptr_7pyarrow_8_compute__QuantileOptions) < (0)) __PYX_ERR(0, 2300, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions) < (0)) __PYX_ERR(0, 2300, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_QuantileOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions) < (0)) __PYX_ERR(0, 2300, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__QuantileOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__QuantileOptions) < (0)) __PYX_ERR(0, 2300, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__TDigestOptions = &__pyx_vtable_7pyarrow_8_compute__TDigestOptions;
  __pyx_vtable_7pyarrow_8_compute__TDigestOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__TDigestOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions)) __PYX_ERR(0, 2348, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__TDigestOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions) < (0)) __PYX_ERR(0, 2348, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions = &__pyx_type_7pyarrow_8_compute__TDigestOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__TDigestOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions) < (0)) __PYX_ERR(0, 2348, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions, __pyx_vtabptr_7pyarrow_8_compute__TDigestOptions) < (0)) __PYX_ERR(0, 2348, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions) < (0)) __PYX_ERR(0, 2348, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TDigestOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions) < (0)) __PYX_ERR(0, 2348, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__TDigestOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__TDigestOptions) < (0)) __PYX_ERR(0, 2348, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__Utf8NormalizeOptions = &__pyx_vtable_7pyarrow_8_compute__Utf8NormalizeOptions;
  __pyx_vtable_7pyarrow_8_compute__Utf8NormalizeOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__Utf8NormalizeOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions)) __PYX_ERR(0, 2381, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__Utf8NormalizeOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions) < (0)) __PYX_ERR(0, 2381, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions = &__pyx_type_7pyarrow_8_compute__Utf8NormalizeOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions) < (0)) __PYX_ERR(0, 2381, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions, __pyx_vtabptr_7pyarrow_8_compute__Utf8NormalizeOptions) < (0)) __PYX_ERR(0, 2381, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions) < (0)) __PYX_ERR(0, 2381, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Utf8NormalizeOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions) < (0)) __PYX_ERR(0, 2381, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__Utf8NormalizeOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions) < (0)) __PYX_ERR(0, 2381, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__RandomOptions = &__pyx_vtable_7pyarrow_8_compute__RandomOptions;
  __pyx_vtable_7pyarrow_8_compute__RandomOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__RandomOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions)) __PYX_ERR(0, 2414, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__RandomOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions) < (0)) __PYX_ERR(0, 2414, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions = &__pyx_type_7pyarrow_8_compute__RandomOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RandomOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions) < (0)) __PYX_ERR(0, 2414, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions, __pyx_vtabptr_7pyarrow_8_compute__RandomOptions) < (0)) __PYX_ERR(0, 2414, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions) < (0)) __PYX_ERR(0, 2414, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RandomOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions) < (0)) __PYX_ERR(0, 2414, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__RandomOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RandomOptions) < (0)) __PYX_ERR(0, 2414, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__RankOptions = &__pyx_vtable_7pyarrow_8_compute__RankOptions;
  __pyx_vtable_7pyarrow_8_compute__RankOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__RankOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions)) __PYX_ERR(0, 2453, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__RankOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions) < (0)) __PYX_ERR(0, 2453, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions = &__pyx_type_7pyarrow_8_compute__RankOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RankOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions) < (0)) __PYX_ERR(0, 2453, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions, __pyx_vtabptr_7pyarrow_8_compute__RankOptions) < (0)) __PYX_ERR(0, 2453, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions) < (0)) __PYX_ERR(0, 2453, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RankOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions) < (0)) __PYX_ERR(0, 2453, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__RankOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankOptions) < (0)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__RankQuantileOptions = &__pyx_vtable_7pyarrow_8_compute__RankQuantileOptions;
  __pyx_vtable_7pyarrow_8_compute__RankQuantileOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__RankQuantileOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions)) __PYX_ERR(0, 2506, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__RankQuantileOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions) < (0)) __PYX_ERR(0, 2506, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions = &__pyx_type_7pyarrow_8_compute__RankQuantileOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions) < (0)) __PYX_ERR(0, 2506, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions, __pyx_vtabptr_7pyarrow_8_compute__RankQuantileOptions) < (0)) __PYX_ERR(0, 2506, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions) < (0)) __PYX_ERR(0, 2506, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RankQuantileOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions) < (0)) __PYX_ERR(0, 2506, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__RankQuantileOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions) < (0)) __PYX_ERR(0, 2506, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute__PivotWiderOptions = &__pyx_vtable_7pyarrow_8_compute__PivotWiderOptions;
  __pyx_vtable_7pyarrow_8_compute__PivotWiderOptions.__pyx_base = *__pyx_vtabptr_7pyarrow_8_compute_FunctionOptions;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute__PivotWiderOptions_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions)) __PYX_ERR(0, 2537, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute__PivotWiderOptions_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions) < (0)) __PYX_ERR(0, 2537, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions = &__pyx_type_7pyarrow_8_compute__PivotWiderOptions;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions) < (0)) __PYX_ERR(0, 2537, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions, __pyx_vtabptr_7pyarrow_8_compute__PivotWiderOptions) < (0)) __PYX_ERR(0, 2537, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions) < (0)) __PYX_ERR(0, 2537, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PivotWiderOptions, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions) < (0)) __PYX_ERR(0, 2537, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute__PivotWiderOptions, __pyx_base.__pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions) < (0)) __PYX_ERR(0, 2537, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_8_compute_RegisterUdf = &__pyx_vtable_7pyarrow_8_compute_RegisterUdf;
  __pyx_vtable_7pyarrow_8_compute_RegisterUdf.init = (void (*)(struct __pyx_obj_7pyarrow_8_compute_RegisterUdf *, __pyx_t_7pyarrow_8_compute_CRegisterUdf const ))__pyx_f_7pyarrow_8_compute_11RegisterUdf_init;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_2 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute_RegisterUdf_spec, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf)) __PYX_ERR(0, 3028, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute_RegisterUdf_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf) < (0)) __PYX_ERR(0, 3028, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf = &__pyx_type_7pyarrow_8_compute_RegisterUdf;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_RegisterUdf->tp_base = __pyx_mstate_global->__pyx_ptype_7pyarrow_3lib__Weakrefable;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf) < (0)) __PYX_ERR(0, 3028, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf, __pyx_vtabptr_7pyarrow_8_compute_RegisterUdf) < (0)) __PYX_ERR(0, 3028, __pyx_L1_error)
  if (__Pyx_MergeVtables(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf) < (0)) __PYX_ERR(0, 3028, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RegisterUdf, (PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf) < (0)) __PYX_ERR(0, 3028, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SLOTS
  if (__pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf->tp_weaklistoffset = offsetof(struct __pyx_obj_7pyarrow_8_compute_RegisterUdf, __pyx_base.__weakref__);
  #endif
  if (__Pyx_setup_reduce((PyObject *) __pyx_mstate->__pyx_ptype_7pyarrow_8_compute_RegisterUdf) < (0)) __PYX_ERR(0, 3028, __pyx_L1_error)
  #if CYTHON_USE_TYPE_SPECS
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute___pyx_defaults = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_7pyarrow_8_compute___pyx_defaults_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute___pyx_defaults)) __PYX_ERR(0, 661, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_7pyarrow_8_compute___pyx_defaults_spec, __pyx_mstate->__pyx_ptype_7pyarrow_8_compute___pyx_defaults) < (0)) __PYX_ERR(0, 661, __pyx_L1_error)
  #else
  __pyx_mstate->__pyx_ptype_7pyarrow_8_compute___pyx_defaults = &__pyx_type_7pyarrow_8_compute___pyx_defaults;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_7pyarrow_8_compute___pyx_defaults) < (0)) __PYX_ERR(0, 661, __pyx_L1_error)
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_7pyarrow_8_compute___pyx_defaults);
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_7pyarrow_8_compute___pyx_defaults->tp_dictoffset && __pyx_mstate->__pyx_ptype_7pyarrow_8_compute___pyx_defaults->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_mstate->__pyx_ptype_7pyarrow_8_compute___pyx_defaults->tp_getattro = PyObject_GenericGetAttr;
  }
  #endif
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_2_4(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyTypeObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  0, 0,
  #else
  sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7cpython_4type_type) __PYX_ERR(4, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType_3_2_4(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "bool",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyLongObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyLongObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  0, 0,
  #else
  sizeof(PyLongObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyLongObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7cpython_4bool_bool) __PYX_ERR(5, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType_3_2_4(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "complex",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyComplexObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyComplexObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  0, 0,
  #else
  sizeof(PyComplexObject), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyComplexObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7cpython_7complex_complex) __PYX_ERR(6, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("datetime"); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 43, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7cpython_8datetime_date = __Pyx_ImportType_3_2_4(__pyx_t_1, "datetime", "date",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyDateTime_Date), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_Date),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(PyDateTime_Date), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_Date),
  #else
  sizeof(PyDateTime_Date), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_Date),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7cpython_8datetime_date) __PYX_ERR(3, 43, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7cpython_8datetime_time = __Pyx_ImportType_3_2_4(__pyx_t_1, "datetime", "time",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyDateTime_Time), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_Time),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(PyDateTime_Time), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_Time),
  #else
  sizeof(PyDateTime_Time), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_Time),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7cpython_8datetime_time) __PYX_ERR(3, 56, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7cpython_8datetime_datetime = __Pyx_ImportType_3_2_4(__pyx_t_1, "datetime", "datetime",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyDateTime_DateTime), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_DateTime),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(PyDateTime_DateTime), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_DateTime),
  #else
  sizeof(PyDateTime_DateTime), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_DateTime),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7cpython_8datetime_datetime) __PYX_ERR(3, 82, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7cpython_8datetime_timedelta = __Pyx_ImportType_3_2_4(__pyx_t_1, "datetime", "timedelta",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyDateTime_Delta), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_Delta),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(PyDateTime_Delta), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_Delta),
  #else
  sizeof(PyDateTime_Delta), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_Delta),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7cpython_8datetime_timedelta) __PYX_ERR(3, 120, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7cpython_8datetime_tzinfo = __Pyx_ImportType_3_2_4(__pyx_t_1, "datetime", "tzinfo",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyDateTime_TZInfo), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_TZInfo),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(PyDateTime_TZInfo), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_TZInfo),
  #else
  sizeof(PyDateTime_TZInfo), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(PyDateTime_TZInfo),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7cpython_8datetime_tzinfo) __PYX_ERR(3, 133, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("pyarrow.lib"); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_IpcWriteOptions = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "IpcWriteOptions",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_IpcWriteOptions), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_IpcWriteOptions),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_IpcWriteOptions), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_IpcWriteOptions),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_IpcWriteOptions), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_IpcWriteOptions),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_IpcWriteOptions) __PYX_ERR(7, 41, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_IpcReadOptions = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "IpcReadOptions",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_IpcReadOptions), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_IpcReadOptions),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_IpcReadOptions), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_IpcReadOptions),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_IpcReadOptions), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_IpcReadOptions),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_IpcReadOptions) __PYX_ERR(7, 49, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Message = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Message",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Message), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Message),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Message), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Message),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Message), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Message),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Message) __PYX_ERR(7, 60, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_MemoryPool = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "MemoryPool",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_MemoryPool), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MemoryPool),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_MemoryPool), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MemoryPool),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_MemoryPool), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MemoryPool),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_MemoryPool) __PYX_ERR(7, 65, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_MemoryPool = (struct __pyx_vtabstruct_7pyarrow_3lib_MemoryPool*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_MemoryPool); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_MemoryPool)) __PYX_ERR(7, 65, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_DataType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "DataType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_DataType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DataType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_DataType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DataType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_DataType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DataType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_DataType) __PYX_ERR(7, 78, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_DataType = (struct __pyx_vtabstruct_7pyarrow_3lib_DataType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_DataType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_DataType)) __PYX_ERR(7, 78, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "ListType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListType) __PYX_ERR(7, 88, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_ListType = (struct __pyx_vtabstruct_7pyarrow_3lib_ListType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_ListType)) __PYX_ERR(7, 88, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "LargeListType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListType) __PYX_ERR(7, 93, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_LargeListType = (struct __pyx_vtabstruct_7pyarrow_3lib_LargeListType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_LargeListType)) __PYX_ERR(7, 93, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListViewType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "ListViewType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListViewType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListViewType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListViewType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListViewType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListViewType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListViewType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListViewType) __PYX_ERR(7, 98, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_ListViewType = (struct __pyx_vtabstruct_7pyarrow_3lib_ListViewType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListViewType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_ListViewType)) __PYX_ERR(7, 98, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListViewType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "LargeListViewType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListViewType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListViewType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListViewType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListViewType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListViewType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListViewType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListViewType) __PYX_ERR(7, 103, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_LargeListViewType = (struct __pyx_vtabstruct_7pyarrow_3lib_LargeListViewType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListViewType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_LargeListViewType)) __PYX_ERR(7, 103, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_MapType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "MapType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_MapType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MapType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_MapType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MapType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_MapType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MapType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_MapType) __PYX_ERR(7, 108, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_MapType = (struct __pyx_vtabstruct_7pyarrow_3lib_MapType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_MapType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_MapType)) __PYX_ERR(7, 108, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeListType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "FixedSizeListType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeListType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeListType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeListType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeListType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeListType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeListType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeListType) __PYX_ERR(7, 113, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_FixedSizeListType = (struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeListType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeListType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_FixedSizeListType)) __PYX_ERR(7, 113, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_StructType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "StructType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_StructType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StructType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_StructType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StructType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_StructType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StructType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_StructType) __PYX_ERR(7, 118, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_StructType = (struct __pyx_vtabstruct_7pyarrow_3lib_StructType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_StructType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_StructType)) __PYX_ERR(7, 118, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_DictionaryMemo = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "DictionaryMemo",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_DictionaryMemo), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DictionaryMemo),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_DictionaryMemo), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DictionaryMemo),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_DictionaryMemo), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DictionaryMemo),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_DictionaryMemo) __PYX_ERR(7, 125, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_DictionaryType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "DictionaryType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_DictionaryType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DictionaryType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_DictionaryType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DictionaryType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_DictionaryType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DictionaryType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_DictionaryType) __PYX_ERR(7, 133, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_DictionaryType = (struct __pyx_vtabstruct_7pyarrow_3lib_DictionaryType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_DictionaryType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_DictionaryType)) __PYX_ERR(7, 133, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_TimestampType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "TimestampType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_TimestampType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_TimestampType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_TimestampType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_TimestampType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_TimestampType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_TimestampType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_TimestampType) __PYX_ERR(7, 138, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_TimestampType = (struct __pyx_vtabstruct_7pyarrow_3lib_TimestampType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_TimestampType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_TimestampType)) __PYX_ERR(7, 138, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Time32Type = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Time32Type",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Time32Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Time32Type),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Time32Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Time32Type),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Time32Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Time32Type),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Time32Type) __PYX_ERR(7, 143, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Time32Type = (struct __pyx_vtabstruct_7pyarrow_3lib_Time32Type*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Time32Type); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Time32Type)) __PYX_ERR(7, 143, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Time64Type = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Time64Type",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Time64Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Time64Type),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Time64Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Time64Type),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Time64Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Time64Type),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Time64Type) __PYX_ERR(7, 148, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Time64Type = (struct __pyx_vtabstruct_7pyarrow_3lib_Time64Type*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Time64Type); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Time64Type)) __PYX_ERR(7, 148, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_DurationType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "DurationType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_DurationType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DurationType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_DurationType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DurationType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_DurationType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DurationType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_DurationType) __PYX_ERR(7, 153, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_DurationType = (struct __pyx_vtabstruct_7pyarrow_3lib_DurationType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_DurationType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_DurationType)) __PYX_ERR(7, 153, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "FixedSizeBinaryType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryType) __PYX_ERR(7, 158, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_FixedSizeBinaryType = (struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_FixedSizeBinaryType)) __PYX_ERR(7, 158, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal32Type = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Decimal32Type",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal32Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal32Type),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal32Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal32Type),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal32Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal32Type),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal32Type) __PYX_ERR(7, 163, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Decimal32Type = (struct __pyx_vtabstruct_7pyarrow_3lib_Decimal32Type*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal32Type); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Decimal32Type)) __PYX_ERR(7, 163, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal64Type = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Decimal64Type",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal64Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal64Type),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal64Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal64Type),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal64Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal64Type),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal64Type) __PYX_ERR(7, 168, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Decimal64Type = (struct __pyx_vtabstruct_7pyarrow_3lib_Decimal64Type*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal64Type); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Decimal64Type)) __PYX_ERR(7, 168, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal128Type = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Decimal128Type",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal128Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal128Type),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal128Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal128Type),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal128Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal128Type),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal128Type) __PYX_ERR(7, 173, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Decimal128Type = (struct __pyx_vtabstruct_7pyarrow_3lib_Decimal128Type*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal128Type); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Decimal128Type)) __PYX_ERR(7, 173, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal256Type = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Decimal256Type",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal256Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal256Type),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal256Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal256Type),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal256Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal256Type),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal256Type) __PYX_ERR(7, 178, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Decimal256Type = (struct __pyx_vtabstruct_7pyarrow_3lib_Decimal256Type*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal256Type); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Decimal256Type)) __PYX_ERR(7, 178, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_RunEndEncodedType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "RunEndEncodedType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_RunEndEncodedType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_RunEndEncodedType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_RunEndEncodedType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_RunEndEncodedType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_RunEndEncodedType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_RunEndEncodedType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_RunEndEncodedType) __PYX_ERR(7, 183, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_RunEndEncodedType = (struct __pyx_vtabstruct_7pyarrow_3lib_RunEndEncodedType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_RunEndEncodedType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_RunEndEncodedType)) __PYX_ERR(7, 183, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_BaseExtensionType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "BaseExtensionType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_BaseExtensionType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BaseExtensionType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_BaseExtensionType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BaseExtensionType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_BaseExtensionType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BaseExtensionType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BaseExtensionType) __PYX_ERR(7, 188, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_BaseExtensionType = (struct __pyx_vtabstruct_7pyarrow_3lib_BaseExtensionType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BaseExtensionType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_BaseExtensionType)) __PYX_ERR(7, 188, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_ExtensionType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "ExtensionType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_ExtensionType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ExtensionType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_ExtensionType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ExtensionType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_ExtensionType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ExtensionType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ExtensionType) __PYX_ERR(7, 193, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_ExtensionType = (struct __pyx_vtabstruct_7pyarrow_3lib_ExtensionType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ExtensionType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_ExtensionType)) __PYX_ERR(7, 193, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedShapeTensorType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "FixedShapeTensorType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedShapeTensorType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedShapeTensorType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedShapeTensorType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedShapeTensorType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedShapeTensorType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedShapeTensorType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedShapeTensorType) __PYX_ERR(7, 198, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_FixedShapeTensorType = (struct __pyx_vtabstruct_7pyarrow_3lib_FixedShapeTensorType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedShapeTensorType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_FixedShapeTensorType)) __PYX_ERR(7, 198, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Bool8Type = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Bool8Type",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Bool8Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Bool8Type),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Bool8Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Bool8Type),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Bool8Type), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Bool8Type),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Bool8Type) __PYX_ERR(7, 202, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Bool8Type = (struct __pyx_vtabstruct_7pyarrow_3lib_Bool8Type*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Bool8Type); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Bool8Type)) __PYX_ERR(7, 202, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_OpaqueType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "OpaqueType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_OpaqueType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_OpaqueType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_OpaqueType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_OpaqueType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_OpaqueType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_OpaqueType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_OpaqueType) __PYX_ERR(7, 206, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_OpaqueType = (struct __pyx_vtabstruct_7pyarrow_3lib_OpaqueType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_OpaqueType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_OpaqueType)) __PYX_ERR(7, 206, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_UuidType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "UuidType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_UuidType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UuidType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_UuidType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UuidType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_UuidType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UuidType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UuidType) __PYX_ERR(7, 210, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_UuidType = (struct __pyx_vtabstruct_7pyarrow_3lib_UuidType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UuidType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_UuidType)) __PYX_ERR(7, 210, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_JsonType = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "JsonType",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_JsonType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_JsonType),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_JsonType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_JsonType),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_JsonType), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_JsonType),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_JsonType) __PYX_ERR(7, 214, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_JsonType = (struct __pyx_vtabstruct_7pyarrow_3lib_JsonType*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_JsonType); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_JsonType)) __PYX_ERR(7, 214, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib__Metadata = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "_Metadata",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib__Metadata), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__Metadata),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib__Metadata), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__Metadata),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib__Metadata), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__Metadata),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib__Metadata) __PYX_ERR(7, 219, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_KeyValueMetadata = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "KeyValueMetadata",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_KeyValueMetadata), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_KeyValueMetadata),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_KeyValueMetadata), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_KeyValueMetadata),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_KeyValueMetadata), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_KeyValueMetadata),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_KeyValueMetadata) __PYX_ERR(7, 225, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_KeyValueMetadata = (struct __pyx_vtabstruct_7pyarrow_3lib_KeyValueMetadata*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_KeyValueMetadata); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_KeyValueMetadata)) __PYX_ERR(7, 225, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Field = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Field",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Field), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Field),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Field), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Field),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Field), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Field),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Field) __PYX_ERR(7, 237, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Field = (struct __pyx_vtabstruct_7pyarrow_3lib_Field*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Field); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Field)) __PYX_ERR(7, 237, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Schema = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Schema",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Schema), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Schema),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Schema), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Schema),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Schema), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Schema),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Schema) __PYX_ERR(7, 248, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Schema = (struct __pyx_vtabstruct_7pyarrow_3lib_Schema*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Schema); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Schema)) __PYX_ERR(7, 248, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Scalar = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Scalar",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Scalar), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Scalar),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Scalar), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Scalar),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Scalar), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Scalar),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Scalar) __PYX_ERR(7, 257, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Scalar = (struct __pyx_vtabstruct_7pyarrow_3lib_Scalar*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Scalar); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Scalar)) __PYX_ERR(7, 257, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_ArrayStatistics = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "ArrayStatistics",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_ArrayStatistics), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ArrayStatistics),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_ArrayStatistics), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ArrayStatistics),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_ArrayStatistics), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ArrayStatistics),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ArrayStatistics) __PYX_ERR(7, 269, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_ArrayStatistics = (struct __pyx_vtabstruct_7pyarrow_3lib_ArrayStatistics*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ArrayStatistics); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_ArrayStatistics)) __PYX_ERR(7, 269, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib__PandasConvertible = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "_PandasConvertible",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib__PandasConvertible), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__PandasConvertible),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib__PandasConvertible), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__PandasConvertible),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib__PandasConvertible), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__PandasConvertible),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib__PandasConvertible) __PYX_ERR(7, 277, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Array) __PYX_ERR(7, 281, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Array = (struct __pyx_vtabstruct_7pyarrow_3lib_Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Array)) __PYX_ERR(7, 281, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Tensor = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Tensor",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Tensor), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Tensor),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Tensor), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Tensor),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Tensor), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Tensor),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Tensor) __PYX_ERR(7, 297, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Tensor = (struct __pyx_vtabstruct_7pyarrow_3lib_Tensor*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Tensor); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Tensor)) __PYX_ERR(7, 297, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCSRMatrix = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "SparseCSRMatrix",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCSRMatrix), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCSRMatrix),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCSRMatrix), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCSRMatrix),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCSRMatrix), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCSRMatrix),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCSRMatrix) __PYX_ERR(7, 310, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_SparseCSRMatrix = (struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSRMatrix*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCSRMatrix); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_SparseCSRMatrix)) __PYX_ERR(7, 310, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCSCMatrix = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "SparseCSCMatrix",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCSCMatrix), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCSCMatrix),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCSCMatrix), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCSCMatrix),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCSCMatrix), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCSCMatrix),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCSCMatrix) __PYX_ERR(7, 321, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_SparseCSCMatrix = (struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSCMatrix*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCSCMatrix); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_SparseCSCMatrix)) __PYX_ERR(7, 321, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCOOTensor = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "SparseCOOTensor",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCOOTensor), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCOOTensor),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCOOTensor), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCOOTensor),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCOOTensor), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCOOTensor),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCOOTensor) __PYX_ERR(7, 332, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_SparseCOOTensor = (struct __pyx_vtabstruct_7pyarrow_3lib_SparseCOOTensor*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCOOTensor); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_SparseCOOTensor)) __PYX_ERR(7, 332, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCSFTensor = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "SparseCSFTensor",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCSFTensor), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCSFTensor),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCSFTensor), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCSFTensor),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_SparseCSFTensor), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_SparseCSFTensor),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCSFTensor) __PYX_ERR(7, 343, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_SparseCSFTensor = (struct __pyx_vtabstruct_7pyarrow_3lib_SparseCSFTensor*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_SparseCSFTensor); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_SparseCSFTensor)) __PYX_ERR(7, 343, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_NullArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "NullArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_NullArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_NullArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_NullArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_NullArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_NullArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_NullArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_NullArray) __PYX_ERR(7, 354, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_NullArray = (struct __pyx_vtabstruct_7pyarrow_3lib_NullArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_NullArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_NullArray)) __PYX_ERR(7, 354, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_BooleanArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "BooleanArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_BooleanArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BooleanArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_BooleanArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BooleanArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_BooleanArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BooleanArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BooleanArray) __PYX_ERR(7, 358, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_BooleanArray = (struct __pyx_vtabstruct_7pyarrow_3lib_BooleanArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BooleanArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_BooleanArray)) __PYX_ERR(7, 358, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_NumericArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "NumericArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_NumericArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_NumericArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_NumericArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_NumericArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_NumericArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_NumericArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_NumericArray) __PYX_ERR(7, 362, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_NumericArray = (struct __pyx_vtabstruct_7pyarrow_3lib_NumericArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_NumericArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_NumericArray)) __PYX_ERR(7, 362, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_IntegerArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "IntegerArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_IntegerArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_IntegerArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_IntegerArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_IntegerArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_IntegerArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_IntegerArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_IntegerArray) __PYX_ERR(7, 366, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_IntegerArray = (struct __pyx_vtabstruct_7pyarrow_3lib_IntegerArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_IntegerArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_IntegerArray)) __PYX_ERR(7, 366, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_FloatingPointArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "FloatingPointArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_FloatingPointArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FloatingPointArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_FloatingPointArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FloatingPointArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_FloatingPointArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FloatingPointArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FloatingPointArray) __PYX_ERR(7, 370, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_FloatingPointArray = (struct __pyx_vtabstruct_7pyarrow_3lib_FloatingPointArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FloatingPointArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_FloatingPointArray)) __PYX_ERR(7, 370, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int8Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Int8Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int8Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int8Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int8Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int8Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int8Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int8Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int8Array) __PYX_ERR(7, 374, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Int8Array = (struct __pyx_vtabstruct_7pyarrow_3lib_Int8Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int8Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Int8Array)) __PYX_ERR(7, 374, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt8Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "UInt8Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt8Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt8Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt8Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt8Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt8Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt8Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt8Array) __PYX_ERR(7, 378, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_UInt8Array = (struct __pyx_vtabstruct_7pyarrow_3lib_UInt8Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt8Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_UInt8Array)) __PYX_ERR(7, 378, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int16Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Int16Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int16Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int16Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int16Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int16Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int16Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int16Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int16Array) __PYX_ERR(7, 382, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Int16Array = (struct __pyx_vtabstruct_7pyarrow_3lib_Int16Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int16Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Int16Array)) __PYX_ERR(7, 382, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt16Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "UInt16Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt16Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt16Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt16Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt16Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt16Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt16Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt16Array) __PYX_ERR(7, 386, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_UInt16Array = (struct __pyx_vtabstruct_7pyarrow_3lib_UInt16Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt16Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_UInt16Array)) __PYX_ERR(7, 386, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int32Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Int32Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int32Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int32Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int32Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int32Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int32Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int32Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int32Array) __PYX_ERR(7, 390, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Int32Array = (struct __pyx_vtabstruct_7pyarrow_3lib_Int32Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int32Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Int32Array)) __PYX_ERR(7, 390, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt32Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "UInt32Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt32Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt32Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt32Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt32Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt32Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt32Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt32Array) __PYX_ERR(7, 394, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_UInt32Array = (struct __pyx_vtabstruct_7pyarrow_3lib_UInt32Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt32Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_UInt32Array)) __PYX_ERR(7, 394, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int64Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Int64Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int64Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int64Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int64Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int64Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Int64Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Int64Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int64Array) __PYX_ERR(7, 398, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Int64Array = (struct __pyx_vtabstruct_7pyarrow_3lib_Int64Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Int64Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Int64Array)) __PYX_ERR(7, 398, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt64Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "UInt64Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt64Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt64Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt64Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt64Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_UInt64Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UInt64Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt64Array) __PYX_ERR(7, 402, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_UInt64Array = (struct __pyx_vtabstruct_7pyarrow_3lib_UInt64Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UInt64Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_UInt64Array)) __PYX_ERR(7, 402, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_HalfFloatArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "HalfFloatArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_HalfFloatArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_HalfFloatArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_HalfFloatArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_HalfFloatArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_HalfFloatArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_HalfFloatArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_HalfFloatArray) __PYX_ERR(7, 406, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_HalfFloatArray = (struct __pyx_vtabstruct_7pyarrow_3lib_HalfFloatArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_HalfFloatArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_HalfFloatArray)) __PYX_ERR(7, 406, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_FloatArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "FloatArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_FloatArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FloatArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_FloatArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FloatArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_FloatArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FloatArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FloatArray) __PYX_ERR(7, 410, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_FloatArray = (struct __pyx_vtabstruct_7pyarrow_3lib_FloatArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FloatArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_FloatArray)) __PYX_ERR(7, 410, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_DoubleArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "DoubleArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_DoubleArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DoubleArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_DoubleArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DoubleArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_DoubleArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DoubleArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_DoubleArray) __PYX_ERR(7, 414, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_DoubleArray = (struct __pyx_vtabstruct_7pyarrow_3lib_DoubleArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_DoubleArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_DoubleArray)) __PYX_ERR(7, 414, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "FixedSizeBinaryArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeBinaryArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryArray) __PYX_ERR(7, 418, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_FixedSizeBinaryArray = (struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeBinaryArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeBinaryArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_FixedSizeBinaryArray)) __PYX_ERR(7, 418, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal32Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Decimal32Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal32Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal32Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal32Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal32Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal32Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal32Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal32Array) __PYX_ERR(7, 422, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Decimal32Array = (struct __pyx_vtabstruct_7pyarrow_3lib_Decimal32Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal32Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Decimal32Array)) __PYX_ERR(7, 422, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal64Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Decimal64Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal64Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal64Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal64Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal64Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal64Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal64Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal64Array) __PYX_ERR(7, 426, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Decimal64Array = (struct __pyx_vtabstruct_7pyarrow_3lib_Decimal64Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal64Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Decimal64Array)) __PYX_ERR(7, 426, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal128Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Decimal128Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal128Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal128Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal128Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal128Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal128Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal128Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal128Array) __PYX_ERR(7, 430, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Decimal128Array = (struct __pyx_vtabstruct_7pyarrow_3lib_Decimal128Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal128Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Decimal128Array)) __PYX_ERR(7, 430, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal256Array = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Decimal256Array",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal256Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal256Array),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal256Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal256Array),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Decimal256Array), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Decimal256Array),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal256Array) __PYX_ERR(7, 434, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Decimal256Array = (struct __pyx_vtabstruct_7pyarrow_3lib_Decimal256Array*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Decimal256Array); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Decimal256Array)) __PYX_ERR(7, 434, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_StructArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "StructArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_StructArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StructArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_StructArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StructArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_StructArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StructArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_StructArray) __PYX_ERR(7, 438, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_StructArray = (struct __pyx_vtabstruct_7pyarrow_3lib_StructArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_StructArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_StructArray)) __PYX_ERR(7, 438, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_BaseListArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "BaseListArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_BaseListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BaseListArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_BaseListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BaseListArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_BaseListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BaseListArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BaseListArray) __PYX_ERR(7, 442, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_BaseListArray = (struct __pyx_vtabstruct_7pyarrow_3lib_BaseListArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BaseListArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_BaseListArray)) __PYX_ERR(7, 442, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "ListArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListArray) __PYX_ERR(7, 446, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_ListArray = (struct __pyx_vtabstruct_7pyarrow_3lib_ListArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_ListArray)) __PYX_ERR(7, 446, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "LargeListArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListArray) __PYX_ERR(7, 450, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_LargeListArray = (struct __pyx_vtabstruct_7pyarrow_3lib_LargeListArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_LargeListArray)) __PYX_ERR(7, 450, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListViewArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "ListViewArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListViewArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListViewArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_ListViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ListViewArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListViewArray) __PYX_ERR(7, 454, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_ListViewArray = (struct __pyx_vtabstruct_7pyarrow_3lib_ListViewArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ListViewArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_ListViewArray)) __PYX_ERR(7, 454, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListViewArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "LargeListViewArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListViewArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListViewArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_LargeListViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_LargeListViewArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListViewArray) __PYX_ERR(7, 458, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_LargeListViewArray = (struct __pyx_vtabstruct_7pyarrow_3lib_LargeListViewArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_LargeListViewArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_LargeListViewArray)) __PYX_ERR(7, 458, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_MapArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "MapArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_MapArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MapArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_MapArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MapArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_MapArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MapArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_MapArray) __PYX_ERR(7, 462, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_MapArray = (struct __pyx_vtabstruct_7pyarrow_3lib_MapArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_MapArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_MapArray)) __PYX_ERR(7, 462, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeListArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "FixedSizeListArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeListArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeListArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_FixedSizeListArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_FixedSizeListArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeListArray) __PYX_ERR(7, 466, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_FixedSizeListArray = (struct __pyx_vtabstruct_7pyarrow_3lib_FixedSizeListArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_FixedSizeListArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_FixedSizeListArray)) __PYX_ERR(7, 466, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_UnionArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "UnionArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_UnionArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UnionArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_UnionArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UnionArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_UnionArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_UnionArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UnionArray) __PYX_ERR(7, 470, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_UnionArray = (struct __pyx_vtabstruct_7pyarrow_3lib_UnionArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_UnionArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_UnionArray)) __PYX_ERR(7, 470, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_StringArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "StringArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_StringArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StringArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_StringArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StringArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_StringArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StringArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_StringArray) __PYX_ERR(7, 474, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_StringArray = (struct __pyx_vtabstruct_7pyarrow_3lib_StringArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_StringArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_StringArray)) __PYX_ERR(7, 474, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_BinaryArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "BinaryArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_BinaryArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BinaryArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_BinaryArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BinaryArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_BinaryArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BinaryArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BinaryArray) __PYX_ERR(7, 478, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_BinaryArray = (struct __pyx_vtabstruct_7pyarrow_3lib_BinaryArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BinaryArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_BinaryArray)) __PYX_ERR(7, 478, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_StringViewArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "StringViewArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_StringViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StringViewArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_StringViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StringViewArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_StringViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StringViewArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_StringViewArray) __PYX_ERR(7, 482, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_StringViewArray = (struct __pyx_vtabstruct_7pyarrow_3lib_StringViewArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_StringViewArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_StringViewArray)) __PYX_ERR(7, 482, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_BinaryViewArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "BinaryViewArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_BinaryViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BinaryViewArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_BinaryViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BinaryViewArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_BinaryViewArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BinaryViewArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BinaryViewArray) __PYX_ERR(7, 486, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_BinaryViewArray = (struct __pyx_vtabstruct_7pyarrow_3lib_BinaryViewArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BinaryViewArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_BinaryViewArray)) __PYX_ERR(7, 486, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_DictionaryArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "DictionaryArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_DictionaryArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DictionaryArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_DictionaryArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DictionaryArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_DictionaryArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_DictionaryArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_DictionaryArray) __PYX_ERR(7, 490, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_DictionaryArray = (struct __pyx_vtabstruct_7pyarrow_3lib_DictionaryArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_DictionaryArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_DictionaryArray)) __PYX_ERR(7, 490, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_ExtensionArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "ExtensionArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_ExtensionArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ExtensionArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_ExtensionArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ExtensionArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_ExtensionArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ExtensionArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ExtensionArray) __PYX_ERR(7, 495, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_ExtensionArray = (struct __pyx_vtabstruct_7pyarrow_3lib_ExtensionArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ExtensionArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_ExtensionArray)) __PYX_ERR(7, 495, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_MonthDayNanoIntervalArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "MonthDayNanoIntervalArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_MonthDayNanoIntervalArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MonthDayNanoIntervalArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_MonthDayNanoIntervalArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MonthDayNanoIntervalArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_MonthDayNanoIntervalArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MonthDayNanoIntervalArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_MonthDayNanoIntervalArray) __PYX_ERR(7, 499, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_MonthDayNanoIntervalArray = (struct __pyx_vtabstruct_7pyarrow_3lib_MonthDayNanoIntervalArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_MonthDayNanoIntervalArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_MonthDayNanoIntervalArray)) __PYX_ERR(7, 499, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_ChunkedArray = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "ChunkedArray",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_ChunkedArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ChunkedArray),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_ChunkedArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ChunkedArray),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_ChunkedArray), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ChunkedArray),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ChunkedArray) __PYX_ERR(7, 507, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_ChunkedArray = (struct __pyx_vtabstruct_7pyarrow_3lib_ChunkedArray*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ChunkedArray); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_ChunkedArray)) __PYX_ERR(7, 507, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib__Tabular = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "_Tabular",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib__Tabular), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__Tabular),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib__Tabular), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__Tabular),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib__Tabular), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__Tabular),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib__Tabular) __PYX_ERR(7, 522, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib__Tabular = (struct __pyx_vtabstruct_7pyarrow_3lib__Tabular*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib__Tabular); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib__Tabular)) __PYX_ERR(7, 522, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Table = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Table",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Table), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Table),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Table), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Table),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Table), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Table),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Table) __PYX_ERR(7, 526, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Table = (struct __pyx_vtabstruct_7pyarrow_3lib_Table*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Table); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Table)) __PYX_ERR(7, 526, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_RecordBatch = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "RecordBatch",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_RecordBatch), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_RecordBatch),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_RecordBatch), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_RecordBatch),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_RecordBatch), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_RecordBatch),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_RecordBatch) __PYX_ERR(7, 536, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_RecordBatch = (struct __pyx_vtabstruct_7pyarrow_3lib_RecordBatch*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_RecordBatch); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_RecordBatch)) __PYX_ERR(7, 536, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Device = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Device",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Device), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Device),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Device), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Device),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Device), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Device),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Device) __PYX_ERR(7, 545, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Device = (struct __pyx_vtabstruct_7pyarrow_3lib_Device*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Device); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Device)) __PYX_ERR(7, 545, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_MemoryManager = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "MemoryManager",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_MemoryManager), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MemoryManager),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_MemoryManager), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MemoryManager),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_MemoryManager), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_MemoryManager),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_MemoryManager) __PYX_ERR(7, 557, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_MemoryManager = (struct __pyx_vtabstruct_7pyarrow_3lib_MemoryManager*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_MemoryManager); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_MemoryManager)) __PYX_ERR(7, 557, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Buffer = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Buffer",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Buffer), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Buffer),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Buffer), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Buffer),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Buffer), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Buffer),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Buffer) __PYX_ERR(7, 569, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Buffer = (struct __pyx_vtabstruct_7pyarrow_3lib_Buffer*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Buffer); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Buffer)) __PYX_ERR(7, 569, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_ResizableBuffer = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "ResizableBuffer",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_ResizableBuffer), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ResizableBuffer),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_ResizableBuffer), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ResizableBuffer),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_ResizableBuffer), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_ResizableBuffer),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ResizableBuffer) __PYX_ERR(7, 579, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_ResizableBuffer = (struct __pyx_vtabstruct_7pyarrow_3lib_ResizableBuffer*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_ResizableBuffer); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_ResizableBuffer)) __PYX_ERR(7, 579, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_NativeFile = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "NativeFile",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_NativeFile), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_NativeFile),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_NativeFile), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_NativeFile),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_NativeFile), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_NativeFile),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_NativeFile) __PYX_ERR(7, 584, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_NativeFile = (struct __pyx_vtabstruct_7pyarrow_3lib_NativeFile*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_NativeFile); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_NativeFile)) __PYX_ERR(7, 584, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_BufferedInputStream = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "BufferedInputStream",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_BufferedInputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BufferedInputStream),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_BufferedInputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BufferedInputStream),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_BufferedInputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BufferedInputStream),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BufferedInputStream) __PYX_ERR(7, 608, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_BufferedInputStream = (struct __pyx_vtabstruct_7pyarrow_3lib_BufferedInputStream*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BufferedInputStream); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_BufferedInputStream)) __PYX_ERR(7, 608, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_BufferedOutputStream = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "BufferedOutputStream",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_BufferedOutputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BufferedOutputStream),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_BufferedOutputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BufferedOutputStream),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_BufferedOutputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_BufferedOutputStream),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BufferedOutputStream) __PYX_ERR(7, 612, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_BufferedOutputStream = (struct __pyx_vtabstruct_7pyarrow_3lib_BufferedOutputStream*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_BufferedOutputStream); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_BufferedOutputStream)) __PYX_ERR(7, 612, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_CompressedInputStream = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "CompressedInputStream",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_CompressedInputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_CompressedInputStream),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_CompressedInputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_CompressedInputStream),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_CompressedInputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_CompressedInputStream),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_CompressedInputStream) __PYX_ERR(7, 616, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_CompressedInputStream = (struct __pyx_vtabstruct_7pyarrow_3lib_CompressedInputStream*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_CompressedInputStream); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_CompressedInputStream)) __PYX_ERR(7, 616, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_CompressedOutputStream = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "CompressedOutputStream",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_CompressedOutputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_CompressedOutputStream),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_CompressedOutputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_CompressedOutputStream),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_CompressedOutputStream), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_CompressedOutputStream),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_CompressedOutputStream) __PYX_ERR(7, 620, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_CompressedOutputStream = (struct __pyx_vtabstruct_7pyarrow_3lib_CompressedOutputStream*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_CompressedOutputStream); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_CompressedOutputStream)) __PYX_ERR(7, 620, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib__CRecordBatchWriter = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "_CRecordBatchWriter",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib__CRecordBatchWriter), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__CRecordBatchWriter),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib__CRecordBatchWriter), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__CRecordBatchWriter),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib__CRecordBatchWriter), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib__CRecordBatchWriter),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib__CRecordBatchWriter) __PYX_ERR(7, 624, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_RecordBatchReader = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "RecordBatchReader",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_RecordBatchReader), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_RecordBatchReader),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_RecordBatchReader), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_RecordBatchReader),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_RecordBatchReader), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_RecordBatchReader),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_RecordBatchReader) __PYX_ERR(7, 629, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_CacheOptions = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "CacheOptions",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_CacheOptions), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_CacheOptions),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_CacheOptions), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_CacheOptions),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_CacheOptions), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_CacheOptions),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_CacheOptions) __PYX_ERR(7, 634, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_CacheOptions = (struct __pyx_vtabstruct_7pyarrow_3lib_CacheOptions*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_CacheOptions); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_CacheOptions)) __PYX_ERR(7, 634, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_Codec = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "Codec",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_Codec), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Codec),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_Codec), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Codec),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_Codec), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_Codec),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Codec) __PYX_ERR(7, 646, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_Codec = (struct __pyx_vtabstruct_7pyarrow_3lib_Codec*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_Codec); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_Codec)) __PYX_ERR(7, 646, __pyx_L1_error)
  __pyx_mstate->__pyx_ptype_7pyarrow_3lib_StopToken = __Pyx_ImportType_3_2_4(__pyx_t_1, "pyarrow.lib", "StopToken",
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(struct __pyx_obj_7pyarrow_3lib_StopToken), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StopToken),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(struct __pyx_obj_7pyarrow_3lib_StopToken), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StopToken),
  #else
  sizeof(struct __pyx_obj_7pyarrow_3lib_StopToken), __PYX_GET_STRUCT_ALIGNMENT_3_2_4(struct __pyx_obj_7pyarrow_3lib_StopToken),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_2_4); if (!__pyx_mstate->__pyx_ptype_7pyarrow_3lib_StopToken) __PYX_ERR(7, 654, __pyx_L1_error)
  __pyx_vtabptr_7pyarrow_3lib_StopToken = (struct __pyx_vtabstruct_7pyarrow_3lib_StopToken*)__Pyx_GetVtable(__pyx_mstate->__pyx_ptype_7pyarrow_3lib_StopToken); if (unlikely(!__pyx_vtabptr_7pyarrow_3lib_StopToken)) __PYX_ERR(7, 654, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  {
    __pyx_t_1 = PyImport_ImportModule("pyarrow.lib"); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    const char * __pyx_import_signature = __Pyx_PyBytes_AsString(__pyx_mstate_global->__pyx_kp_b_arrow_MemoryPool_struct___pyx_o);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (unlikely(!__pyx_import_signature)) __PYX_ERR(0, 1, __pyx_L1_error)
    #endif
    const char * __pyx_import_name = __pyx_import_signature + 720;
    void (**const __pyx_import_pointers[])(void) = {(void (**)(void))&__pyx_f_7pyarrow_3lib_maybe_unbox_memory_pool, (void (**)(void))&__pyx_f_7pyarrow_3lib_wrap_datum, (void (**)(void))&__pyx_f_7pyarrow_3lib_box_memory_pool, (void (**)(void))&__pyx_f_7pyarrow_3lib_pyarrow_wrap_buffer, (void (**)(void))&__pyx_f_7pyarrow_3lib_pyarrow_wrap_data_type, (void (**)(void))&__pyx_f_7pyarrow_3lib_pyarrow_wrap_schema, (void (**)(void))&__pyx_f_7pyarrow_3lib_check_status, (void (**)(void))&__pyx_f_7pyarrow_3lib_pyarrow_unwrap_buffer, (void (**)(void))&__pyx_f_7pyarrow_3lib_pyarrow_unwrap_data_type, (void (**)(void))&__pyx_f_7pyarrow_3lib_pyarrow_unwrap_metadata, (void (**)(void))&__pyx_f_7pyarrow_3lib_pyarrow_unwrap_scalar, (void (**)(void))&__pyx_f_7pyarrow_3lib_pyarrow_unwrap_schema, (void (**)(void))&__pyx_f_7pyarrow_3lib_ensure_type, (void (**)(void)) NULL};
    void (**const *__pyx_import_pointer)(void) = __pyx_import_pointers;
    const char *__pyx_import_current_signature = __pyx_import_signature;
    while (*__pyx_import_pointer) {
      if (__Pyx_ImportFunction_3_2_4(__pyx_t_1, __pyx_import_name, *__pyx_import_pointer, __pyx_import_current_signature) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
      ++__pyx_import_pointer;
      __pyx_import_name = strchr(__pyx_import_name, '\0') + 1;
      __pyx_import_signature = strchr(__pyx_import_signature, '\0') + 1;
      if (*__pyx_import_signature != '\0') __pyx_import_current_signature = __pyx_import_signature;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec__compute(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec__compute},
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
  {Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE},
  #endif
  #if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATE
  {Py_mod_multiple_interpreters, Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED},
  #endif
  {0, NULL}
};
#endif

#ifdef __cplusplus
namespace {
  struct PyModuleDef __pyx_moduledef =
  #else
  static struct PyModuleDef __pyx_moduledef =
  #endif
  {
      PyModuleDef_HEAD_INIT,
      "_compute",
      0, /* m_doc */
    #if CYTHON_USE_MODULE_STATE
      sizeof(__pyx_mstatetype), /* m_size */
    #else
      (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */
    #endif
      __pyx_methods /* m_methods */,
    #if CYTHON_PEP489_MULTI_PHASE_INIT
      __pyx_moduledef_slots, /* m_slots */
    #else
      NULL, /* m_reload */
    #endif
    #if CYTHON_USE_MODULE_STATE
      __pyx_m_traverse, /* m_traverse */
      __pyx_m_clear, /* m_clear */
      NULL /* m_free */
    #else
      NULL, /* m_traverse */
      NULL, /* m_clear */
      NULL /* m_free */
    #endif
  };
  #ifdef __cplusplus
} /* anonymous namespace */
#endif

/* PyModInitFuncType */
#ifndef CYTHON_NO_PYINIT_EXPORT
  #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#else
  #ifdef __cplusplus
  #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
  #else
  #define __Pyx_PyMODINIT_FUNC PyObject *
  #endif
#endif

__Pyx_PyMODINIT_FUNC PyInit__compute(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit__compute(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
/* ModuleCreationPEP489 */
#if CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\
      || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000))
static PY_INT64_T __Pyx_GetCurrentInterpreterId(void) {
    {
        PyObject *module = PyImport_ImportModule("_interpreters"); // 3.13+ I think
        if (!module) {
            PyErr_Clear(); // just try the 3.8-3.12 version
            module = PyImport_ImportModule("_xxsubinterpreters");
            if (!module) goto bad;
        }
        PyObject *current = PyObject_CallMethod(module, "get_current", NULL);
        Py_DECREF(module);
        if (!current) goto bad;
        if (PyTuple_Check(current)) {
            PyObject *new_current = PySequence_GetItem(current, 0);
            Py_DECREF(current);
            current = new_current;
            if (!new_current) goto bad;
        }
        long long as_c_int = PyLong_AsLongLong(current);
        Py_DECREF(current);
        return as_c_int;
    }
  bad:
    PySys_WriteStderr("__Pyx_GetCurrentInterpreterId failed. Try setting the C define CYTHON_PEP489_MULTI_PHASE_INIT=0\n");
    return -1;
}
#endif
#if !CYTHON_USE_MODULE_STATE
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    static PY_INT64_T main_interpreter_id = -1;
#if CYTHON_COMPILING_IN_GRAAL && defined(GRAALPY_VERSION_NUM) && GRAALPY_VERSION_NUM > 0x19000000
    PY_INT64_T current_id = GraalPyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
#elif CYTHON_COMPILING_IN_GRAAL
    PY_INT64_T current_id = PyInterpreterState_GetIDFromThreadState(PyThreadState_Get());
#elif CYTHON_COMPILING_IN_LIMITED_API && (__PYX_LIMITED_VERSION_HEX < 0x03090000\
      || ((defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) && __PYX_LIMITED_VERSION_HEX < 0x030A0000))
    PY_INT64_T current_id = __Pyx_GetCurrentInterpreterId();
#elif CYTHON_COMPILING_IN_LIMITED_API
    PY_INT64_T current_id = PyInterpreterState_GetID(PyInterpreterState_Get());
#else
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
#endif
    if (unlikely(current_id == -1)) {
        return -1;
    }
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return 0;
    } else if (unlikely(main_interpreter_id != current_id)) {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
#endif
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)
{
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
            result = PyDict_SetItemString(moddict, to_name, value);
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    CYTHON_UNUSED_VAR(def);
    #if !CYTHON_USE_MODULE_STATE
    if (__Pyx_check_single_interpreter())
        return NULL;
    #endif
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec__compute(PyObject *__pyx_pyinit_module)
#endif
{
  int stringtab_initialized = 0;
  #if CYTHON_USE_MODULE_STATE
  int pystate_addmodule_run = 0;
  #endif
  __pyx_mstatetype *__pyx_mstate = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  size_t __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15[3];
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18[5];
  std::shared_ptr< arrow::BooleanScalar>  __pyx_t_19;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module '_compute' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #else
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  /*--- Module creation code ---*/
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_t_1 = __pyx_pyinit_module;
  Py_INCREF(__pyx_t_1);
  #else
  __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #if CYTHON_USE_MODULE_STATE
  {
    int add_module_result = __Pyx_State_AddModule(__pyx_t_1, &__pyx_moduledef);
    __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "_compute" pseudovariable */
    if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    pystate_addmodule_run = 1;
  }
  #else
  __pyx_m = __pyx_t_1;
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
  PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_NOT_USED);
  #endif
  __pyx_mstate = __pyx_mstate_global;
  CYTHON_UNUSED_VAR(__pyx_t_1);
  __pyx_mstate->__pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_mstate->__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_mstate->__pyx_d);
  __pyx_mstate->__pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_mstate->__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_cython_runtime = __Pyx_PyImport_AddModuleRef("cython_runtime"); if (unlikely(!__pyx_mstate->__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_mstate->__pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /* ImportRefnannyAPI */
  #if CYTHON_REFNANNY
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
  if (!__Pyx_RefNanny) {
    PyErr_Clear();
    __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
    if (!__Pyx_RefNanny)
        Py_FatalError("failed to import 'refnanny' module");
  }
  #endif
  
__Pyx_RefNannySetupContext("PyInit__compute", 0);
  __Pyx_init_runtime_version();
  if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_mstate->__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_mstate->__pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_mstate->__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Library function declarations ---*/
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  stringtab_initialized = 1;
  if (__Pyx_InitGlobals() < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__pyx_module_is_main_pyarrow___compute) {
    if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_name, __pyx_mstate_global->__pyx_n_u_main) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  }
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "pyarrow._compute")) {
      if (unlikely((PyDict_SetItemString(modules, "pyarrow._compute", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_CreateCodeObjects(__pyx_mstate) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code(__pyx_mstate);
  if (unlikely((__Pyx_modinit_variable_export_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_function_export_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_init_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  (void)__Pyx_modinit_variable_import_code(__pyx_mstate);
  if (unlikely((__Pyx_modinit_function_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Execution code ---*/

  /* "pyarrow/_compute.pyx":20
 * # cython: language_level = 3
 * 
 * import sys             # <<<<<<<<<<<<<<
 * 
 * from cpython.object cimport Py_LT, Py_EQ, Py_GT, Py_LE, Py_NE, Py_GE
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_sys, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 20, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_sys, __pyx_t_2) < (0)) __PYX_ERR(0, 20, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":25
 * from cython.operator cimport dereference as deref
 * 
 * from collections import namedtuple             # <<<<<<<<<<<<<<
 * 
 * from pyarrow.lib import frombytes, tobytes, ArrowInvalid
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_namedtuple};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_namedtuple};
    __pyx_t_3 = 0; {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 25, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 25, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":27
 * from collections import namedtuple
 * 
 * from pyarrow.lib import frombytes, tobytes, ArrowInvalid             # <<<<<<<<<<<<<<
 * from pyarrow.lib cimport *
 * from pyarrow.includes.common cimport *
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_frombytes,__pyx_mstate_global->__pyx_n_u_tobytes,__pyx_mstate_global->__pyx_n_u_ArrowInvalid};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pyarrow_lib, __pyx_imported_names, 3, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_frombytes,__pyx_mstate_global->__pyx_n_u_tobytes,__pyx_mstate_global->__pyx_n_u_ArrowInvalid};
    for (__pyx_t_3=0; __pyx_t_3 < 3; __pyx_t_3++) {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 27, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":31
 * from pyarrow.includes.common cimport *
 * from pyarrow.includes.libarrow cimport *
 * import pyarrow.lib as lib             # <<<<<<<<<<<<<<
 * from pyarrow.util import _DEPR_MSG
 * from libcpp cimport bool as c_bool
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pyarrow_lib, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error)
  __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_lib);
  Py_DECREF(__pyx_t_1);
  if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 31, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_5;
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_lib, __pyx_t_2) < (0)) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":32
 * from pyarrow.includes.libarrow cimport *
 * import pyarrow.lib as lib
 * from pyarrow.util import _DEPR_MSG             # <<<<<<<<<<<<<<
 * from libcpp cimport bool as c_bool
 * 
*/
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_DEPR_MSG};
    __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pyarrow_util, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 32, __pyx_L1_error)
  }
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  {
    PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_DEPR_MSG};
    __pyx_t_3 = 0; {
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 32, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 32, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":35
 * from libcpp cimport bool as c_bool
 * 
 * import inspect             # <<<<<<<<<<<<<<
 * try:
 *     import numpy as np
*/
  __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_inspect, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_inspect, __pyx_t_2) < (0)) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":36
 * 
 * import inspect
 * try:             # <<<<<<<<<<<<<<
 *     import numpy as np
 * except ImportError:
*/
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_5, &__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_6);
    /*try:*/ {

      /* "pyarrow/_compute.pyx":37
 * import inspect
 * try:
 *     import numpy as np             # <<<<<<<<<<<<<<
 * except ImportError:
 *     np = None
*/
      __pyx_t_7 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, 0, 0, NULL, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 37, __pyx_L2_error)
      __pyx_t_2 = __pyx_t_7;
      __Pyx_GOTREF(__pyx_t_2);
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_np, __pyx_t_2) < (0)) __PYX_ERR(0, 37, __pyx_L2_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "pyarrow/_compute.pyx":36
 * 
 * import inspect
 * try:             # <<<<<<<<<<<<<<
 *     import numpy as np
 * except ImportError:
*/
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L7_try_end;
    __pyx_L2_error:;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "pyarrow/_compute.pyx":38
 * try:
 *     import numpy as np
 * except ImportError:             # <<<<<<<<<<<<<<
 *     np = None
 * import warnings
*/
    __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError))));
    if (__pyx_t_8) {
      __Pyx_AddTraceback("pyarrow._compute", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_9) < 0) __PYX_ERR(0, 38, __pyx_L4_except_error)
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_9);

      /* "pyarrow/_compute.pyx":39
 *     import numpy as np
 * except ImportError:
 *     np = None             # <<<<<<<<<<<<<<
 * import warnings
 * 
*/
      if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_np, Py_None) < (0)) __PYX_ERR(0, 39, __pyx_L4_except_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L3_exception_handled;
    }
    goto __pyx_L4_except_error;

    /* "pyarrow/_compute.pyx":36
 * 
 * import inspect
 * try:             # <<<<<<<<<<<<<<
 *     import numpy as np
 * except ImportError:
*/
    __pyx_L4_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_5, __pyx_t_6);
    goto __pyx_L1_error;
    __pyx_L3_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_5, __pyx_t_6);
    __pyx_L7_try_end:;
  }

  /* "pyarrow/_compute.pyx":40
 * except ImportError:
 *     np = None
 * import warnings             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_6 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_warnings, 0, 0, NULL, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 40, __pyx_L1_error)
  __pyx_t_9 = __pyx_t_6;
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_warnings, __pyx_t_9) < (0)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":44
 * 
 * # Call to initialize the compute module (register kernels) on import
 * check_status(InitializeCompute())             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_8 = __pyx_f_7pyarrow_3lib_check_status( arrow::compute::Initialize()); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 44, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":47
 * 
 * 
 * __pas = None             # <<<<<<<<<<<<<<
 * _substrait_msg = (
 *     "The pyarrow installation is not built with support for Substrait."
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pas, Py_None) < (0)) __PYX_ERR(0, 47, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":49
 * __pas = None
 * _substrait_msg = (
 *     "The pyarrow installation is not built with support for Substrait."             # <<<<<<<<<<<<<<
 * )
 * 
*/
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_substrait_msg, __pyx_mstate_global->__pyx_kp_u_The_pyarrow_installation_is_not) < (0)) __PYX_ERR(0, 48, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":53
 * 
 * 
 * SUPPORTED_INPUT_ARR_TYPES = (list, tuple)             # <<<<<<<<<<<<<<
 * if np is not None:
 *     SUPPORTED_INPUT_ARR_TYPES += (np.ndarray, )
*/
  __pyx_t_9 = PyTuple_Pack(2, ((PyObject *)(&PyList_Type)), ((PyObject *)(&PyTuple_Type))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 53, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUPPORTED_INPUT_ARR_TYPES, __pyx_t_9) < (0)) __PYX_ERR(0, 53, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":54
 * 
 * SUPPORTED_INPUT_ARR_TYPES = (list, tuple)
 * if np is not None:             # <<<<<<<<<<<<<<
 *     SUPPORTED_INPUT_ARR_TYPES += (np.ndarray, )
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 54, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = (__pyx_t_9 != Py_None);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__pyx_t_10) {

    /* "pyarrow/_compute.pyx":55
 * SUPPORTED_INPUT_ARR_TYPES = (list, tuple)
 * if np is not None:
 *     SUPPORTED_INPUT_ARR_TYPES += (np.ndarray, )             # <<<<<<<<<<<<<<
 * 
 * 
*/
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_SUPPORTED_INPUT_ARR_TYPES); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ndarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUPPORTED_INPUT_ARR_TYPES, __pyx_t_2) < (0)) __PYX_ERR(0, 55, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "pyarrow/_compute.pyx":54
 * 
 * SUPPORTED_INPUT_ARR_TYPES = (list, tuple)
 * if np is not None:             # <<<<<<<<<<<<<<
 *     SUPPORTED_INPUT_ARR_TYPES += (np.ndarray, )
 * 
*/
  }

  /* "pyarrow/_compute.pyx":58
 * 
 * 
 * def _pas():             # <<<<<<<<<<<<<<
 *     global __pas
 *     if __pas is None:
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_1_pas, 0, __pyx_mstate_global->__pyx_n_u_pas_2, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pas_2, __pyx_t_2) < (0)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":69
 * 
 * 
 * def _forbid_instantiation(klass, subclasses_instead=True):             # <<<<<<<<<<<<<<
 *     msg = f'{klass.__name__} is an abstract class thus cannot be initialized.'
 *     if subclasses_instead:
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_3_forbid_instantiation, 0, __pyx_mstate_global->__pyx_n_u_forbid_instantiation, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[1]);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_forbid_instantiation, __pyx_t_2) < (0)) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_6Kernel_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Kernel___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Kernel, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Kernel__set_state(self, __pyx_state)
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_6Kernel_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Kernel___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Kernel, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12ScalarKernel_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ScalarKernel___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12ScalarKernel_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ScalarKernel___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12VectorKernel_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VectorKernel___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12VectorKernel_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VectorKernel___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_21ScalarAggregateKernel_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ScalarAggregateKernel___reduce_c, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_21ScalarAggregateKernel_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ScalarAggregateKernel___setstate, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19HashAggregateKernel_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HashAggregateKernel___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.kernel cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19HashAggregateKernel_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HashAggregateKernel___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":247
 * 
 * 
 * FunctionDoc = namedtuple(             # <<<<<<<<<<<<<<
 *     "FunctionDoc",
 *     ("summary", "description", "arg_names", "options_class",
*/
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "pyarrow/_compute.pyx":249
 * FunctionDoc = namedtuple(
 *     "FunctionDoc",
 *     ("summary", "description", "arg_names", "options_class",             # <<<<<<<<<<<<<<
 *      "options_required"))
 * 
*/
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[3], NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FunctionDoc, __pyx_t_4) < (0)) __PYX_ERR(0, 247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":288
 * 
 *     _kind_map = {
 *         FunctionKind_SCALAR: "scalar",             # <<<<<<<<<<<<<<
 *         FunctionKind_VECTOR: "vector",
 *         FunctionKind_SCALAR_AGGREGATE: "scalar_aggregate",
*/
  __pyx_t_4 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyLong_From_enum____arrow_3a__3a_compute_3a__3a_Function_3a__3a_Kind( arrow::compute::Function::SCALAR); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_scalar) < (0)) __PYX_ERR(0, 288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":289
 *     _kind_map = {
 *         FunctionKind_SCALAR: "scalar",
 *         FunctionKind_VECTOR: "vector",             # <<<<<<<<<<<<<<
 *         FunctionKind_SCALAR_AGGREGATE: "scalar_aggregate",
 *         FunctionKind_HASH_AGGREGATE: "hash_aggregate",
*/
  __pyx_t_2 = __Pyx_PyLong_From_enum____arrow_3a__3a_compute_3a__3a_Function_3a__3a_Kind( arrow::compute::Function::VECTOR); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_vector) < (0)) __PYX_ERR(0, 288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":290
 *         FunctionKind_SCALAR: "scalar",
 *         FunctionKind_VECTOR: "vector",
 *         FunctionKind_SCALAR_AGGREGATE: "scalar_aggregate",             # <<<<<<<<<<<<<<
 *         FunctionKind_HASH_AGGREGATE: "hash_aggregate",
 *         FunctionKind_META: "meta",
*/
  __pyx_t_2 = __Pyx_PyLong_From_enum____arrow_3a__3a_compute_3a__3a_Function_3a__3a_Kind( arrow::compute::Function::SCALAR_AGGREGATE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 290, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_scalar_aggregate) < (0)) __PYX_ERR(0, 288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":291
 *         FunctionKind_VECTOR: "vector",
 *         FunctionKind_SCALAR_AGGREGATE: "scalar_aggregate",
 *         FunctionKind_HASH_AGGREGATE: "hash_aggregate",             # <<<<<<<<<<<<<<
 *         FunctionKind_META: "meta",
 *     }
*/
  __pyx_t_2 = __Pyx_PyLong_From_enum____arrow_3a__3a_compute_3a__3a_Function_3a__3a_Kind( arrow::compute::Function::HASH_AGGREGATE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 291, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_hash_aggregate) < (0)) __PYX_ERR(0, 288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":292
 *         FunctionKind_SCALAR_AGGREGATE: "scalar_aggregate",
 *         FunctionKind_HASH_AGGREGATE: "hash_aggregate",
 *         FunctionKind_META: "meta",             # <<<<<<<<<<<<<<
 *     }
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_enum____arrow_3a__3a_compute_3a__3a_Function_3a__3a_Kind( arrow::compute::Function::META); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_meta) < (0)) __PYX_ERR(0, 288, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function, __pyx_mstate_global->__pyx_n_u_kind_map, __pyx_t_4) < (0)) __PYX_ERR(0, 287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":305
 *         return f"arrow.compute.Function<name={self.name}, kind={self.kind}, arity={self.arity}, num_kernels={self.num_kernels}>"
 * 
 *     def __reduce__(self):             # <<<<<<<<<<<<<<
 *         # Reduction uses the global registry
 *         return get_function, (self.name,)
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_8Function_5__reduce__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Function___reduce, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function, __pyx_mstate_global->__pyx_n_u_reduce, __pyx_t_4) < (0)) __PYX_ERR(0, 305, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":360
 *         return self.base_func.num_kernels()
 * 
 *     def call(self, args, FunctionOptions options=None,             # <<<<<<<<<<<<<<
 *              MemoryPool memory_pool=None, length=None):
 *         """
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_8Function_7call, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Function_call, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[4]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Function, __pyx_mstate_global->__pyx_n_u_call, __pyx_t_4) < (0)) __PYX_ERR(0, 360, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":529
 *         self.registry = GetFunctionRegistry()
 * 
 *     def list_functions(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return all function names in the registry.
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16FunctionRegistry_3list_functions, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FunctionRegistry_list_functions, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry, __pyx_mstate_global->__pyx_n_u_list_functions, __pyx_t_4) < (0)) __PYX_ERR(0, 529, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":536
 *         return [frombytes(name) for name in names]
 * 
 *     def get_function(self, name):             # <<<<<<<<<<<<<<
 *         """
 *         Look up a function by name in the registry.
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16FunctionRegistry_5get_function, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FunctionRegistry_get_function, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 536, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry, __pyx_mstate_global->__pyx_n_u_get_function, __pyx_t_4) < (0)) __PYX_ERR(0, 536, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16FunctionRegistry_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FunctionRegistry___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.registry cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16FunctionRegistry_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FunctionRegistry___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":553
 * 
 * 
 * cdef FunctionRegistry _global_func_registry = FunctionRegistry()             # <<<<<<<<<<<<<<
 * 
 * 
*/
  __pyx_t_2 = NULL;
  __pyx_t_11 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
    __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionRegistry, __pyx_callargs+__pyx_t_11, (1-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 553, __pyx_L1_error)
    __Pyx_GOTREF((PyObject *)__pyx_t_4);
  }
  __Pyx_XGOTREF((PyObject *)__pyx_v_7pyarrow_8_compute__global_func_registry);
  __Pyx_DECREF_SET(__pyx_v_7pyarrow_8_compute__global_func_registry, ((struct __pyx_obj_7pyarrow_8_compute_FunctionRegistry *)__pyx_t_4));
  __Pyx_GIVEREF((PyObject *)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":556
 * 
 * 
 * def function_registry():             # <<<<<<<<<<<<<<
 *     return _global_func_registry
 * 
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_5function_registry, 0, __pyx_mstate_global->__pyx_n_u_function_registry, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_function_registry, __pyx_t_4) < (0)) __PYX_ERR(0, 556, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":560
 * 
 * 
 * def get_function(name):             # <<<<<<<<<<<<<<
 *     """
 *     Get a function by name.
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_7get_function, 0, __pyx_mstate_global->__pyx_n_u_get_function, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_function, __pyx_t_4) < (0)) __PYX_ERR(0, 560, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":575
 * 
 * 
 * def list_functions():             # <<<<<<<<<<<<<<
 *     """
 *     Return all function names in the global registry.
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_9list_functions, 0, __pyx_mstate_global->__pyx_n_u_list_functions, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_list_functions, __pyx_t_4) < (0)) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":582
 * 
 * 
 * def call_function(name, args, options=None, memory_pool=None, length=None):             # <<<<<<<<<<<<<<
 *     """
 *     Call a named function.
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11call_function, 0, __pyx_mstate_global->__pyx_n_u_call_function, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[4]);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_call_function, __pyx_t_4) < (0)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":609
 * 
 * cdef class FunctionOptions(_Weakrefable):
 *     __slots__ = ()  # avoid mistakingly creating attributes             # <<<<<<<<<<<<<<
 * 
 *     cdef const CFunctionOptions* get_options(self) except NULL:
*/
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions, __pyx_mstate_global->__pyx_n_u_slots, __pyx_mstate_global->__pyx_empty_tuple) < (0)) __PYX_ERR(0, 609, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":620
 *         return self.wrapped
 * 
 *     def serialize(self):             # <<<<<<<<<<<<<<
 *         cdef:
 *             CResult[shared_ptr[CBuffer]] res = self.get_options().Serialize()
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15FunctionOptions_1serialize, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FunctionOptions_serialize, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions, __pyx_mstate_global->__pyx_n_u_serialize, __pyx_t_4) < (0)) __PYX_ERR(0, 620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":626
 *         return pyarrow_wrap_buffer(c_buf)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def deserialize(buf):
 *         """
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15FunctionOptions_3deserialize, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FunctionOptions_deserialize, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions, __pyx_mstate_global->__pyx_n_u_deserialize_2, __pyx_t_4) < (0)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = NULL;
  __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions, __pyx_mstate_global->__pyx_n_u_deserialize_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9};
    __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 626, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_FunctionOptions, __pyx_mstate_global->__pyx_n_u_deserialize_2, __pyx_t_4) < (0)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15FunctionOptions_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FunctionOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15FunctionOptions_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FunctionOptions___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":661
 * 
 * 
 * def _raise_invalid_function_option(value, description, *,             # <<<<<<<<<<<<<<
 *                                    exception_class=ValueError):
 *     raise exception_class(f"\"{value}\" is not a valid {description}")
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_raise_invalid_function_option, 0, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute___pyx_defaults)) __PYX_ERR(0, 661, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":662
 * 
 * def _raise_invalid_function_option(value, description, *,
 *                                    exception_class=ValueError):             # <<<<<<<<<<<<<<
 *     raise exception_class(f"\"{value}\" is not a valid {description}")
 * 
*/
  __Pyx_INCREF((PyObject *)(((PyTypeObject*)PyExc_ValueError)));
  __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_t_4)->arg0 = ((PyObject *)(((PyTypeObject*)PyExc_ValueError)));
  __Pyx_GIVEREF((((PyTypeObject*)PyExc_ValueError)));
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_7pyarrow_8_compute_34__defaults__);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_raise_invalid_function_option, __pyx_t_4) < (0)) __PYX_ERR(0, 661, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":681
 *         self.options = <CCastOptions*> self.wrapped.get()
 * 
 *     def _set_options(self, DataType target_type, allow_int_overflow,             # <<<<<<<<<<<<<<
 *                      allow_time_truncate, allow_time_overflow,
 *                      allow_decimal_truncate, allow_float_truncate,
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_CastOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CastOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CastOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_4) < (0)) __PYX_ERR(0, 681, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":702
 *             self.allow_invalid_utf8 = allow_invalid_utf8
 * 
 *     def _set_type(self, target_type=None):             # <<<<<<<<<<<<<<
 *         if target_type is not None:
 *             deref(self.options).to_type = \
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_CastOptions_3_set_type, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CastOptions__set_type, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[5]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CastOptions, __pyx_mstate_global->__pyx_n_u_set_type, __pyx_t_4) < (0)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":707
 *                 (<DataType> ensure_type(target_type)).sp_type
 * 
 *     def _set_safe(self):             # <<<<<<<<<<<<<<
 *         self.init(shared_ptr[CFunctionOptions](
 *             new CCastOptions(CCastOptions.Safe())))
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_CastOptions_5_set_safe, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CastOptions__set_safe, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CastOptions, __pyx_mstate_global->__pyx_n_u_set_safe, __pyx_t_4) < (0)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":711
 *             new CCastOptions(CCastOptions.Safe())))
 * 
 *     def _set_unsafe(self):             # <<<<<<<<<<<<<<
 *         self.init(shared_ptr[CFunctionOptions](
 *             new CCastOptions(CCastOptions.Unsafe())))
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_CastOptions_7_set_unsafe, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CastOptions__set_unsafe, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CastOptions, __pyx_mstate_global->__pyx_n_u_set_unsafe, __pyx_t_4) < (0)) __PYX_ERR(0, 711, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":715
 *             new CCastOptions(CCastOptions.Unsafe())))
 * 
 *     def is_safe(self):             # <<<<<<<<<<<<<<
 *         return not (deref(self.options).allow_int_overflow or
 *                     deref(self.options).allow_time_truncate or
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_CastOptions_9is_safe, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CastOptions_is_safe, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 715, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CastOptions, __pyx_mstate_global->__pyx_n_u_is_safe, __pyx_t_4) < (0)) __PYX_ERR(0, 715, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_CastOptions_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CastOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.options,self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_CastOptions_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CastOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":772
 * 
 * 
 * class CastOptions(_CastOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `cast` function.
*/
  __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CastOptions)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_CastOptions, __pyx_mstate_global->__pyx_n_u_CastOptions, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_cast_function_P); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__pyx_t_9 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_12, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 772, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":794
 *     """
 * 
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,             # <<<<<<<<<<<<<<
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
*/
  __pyx_t_4 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_allow_int_overflow, Py_None) < (0)) __PYX_ERR(0, 794, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":795
 * 
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,
 *                  allow_time_truncate=None, allow_time_overflow=None,             # <<<<<<<<<<<<<<
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
 *                  allow_invalid_utf8=None):
*/
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_allow_time_truncate, Py_None) < (0)) __PYX_ERR(0, 794, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_allow_time_overflow, Py_None) < (0)) __PYX_ERR(0, 794, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":796
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,             # <<<<<<<<<<<<<<
 *                  allow_invalid_utf8=None):
 *         self._set_options(target_type, allow_int_overflow, allow_time_truncate,
*/
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_allow_decimal_truncate, Py_None) < (0)) __PYX_ERR(0, 794, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_allow_float_truncate, Py_None) < (0)) __PYX_ERR(0, 794, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":797
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
 *                  allow_invalid_utf8=None):             # <<<<<<<<<<<<<<
 *         self._set_options(target_type, allow_int_overflow, allow_time_truncate,
 *                           allow_time_overflow, allow_decimal_truncate,
*/
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_allow_invalid_utf8, Py_None) < (0)) __PYX_ERR(0, 794, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":794
 *     """
 * 
 *     def __init__(self, target_type=None, *, allow_int_overflow=None,             # <<<<<<<<<<<<<<
 *                  allow_time_truncate=None, allow_time_overflow=None,
 *                  allow_decimal_truncate=None, allow_float_truncate=None,
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11CastOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_CastOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_mstate_global->__pyx_tuple[5]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_13, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_13) < (0)) __PYX_ERR(0, 794, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":802
 *                           allow_float_truncate, allow_invalid_utf8)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def safe(target_type=None):
 *         """"
*/
  __pyx_t_4 = NULL;

  /* "pyarrow/_compute.pyx":803
 * 
 *     @staticmethod
 *     def safe(target_type=None):             # <<<<<<<<<<<<<<
 *         """"
 *         Create a CastOptions for a safe cast.
*/
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11CastOptions_3safe, __Pyx_CYFUNCTION_STATICMETHOD, __pyx_mstate_global->__pyx_n_u_CastOptions_safe, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_14);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_mstate_global->__pyx_tuple[5]);
  __pyx_t_11 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_14};
    __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
  }
  if (__Pyx_SetNameInClass(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_safe, __pyx_t_13) < (0)) __PYX_ERR(0, 802, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":817
 *         return self
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def unsafe(target_type=None):
 *         """"
*/
  __pyx_t_14 = NULL;

  /* "pyarrow/_compute.pyx":818
 * 
 *     @staticmethod
 *     def unsafe(target_type=None):             # <<<<<<<<<<<<<<
 *         """"
 *         Create a CastOptions for an unsafe cast.
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11CastOptions_5unsafe, __Pyx_CYFUNCTION_STATICMETHOD, __pyx_mstate_global->__pyx_n_u_CastOptions_unsafe, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[5]);
  __pyx_t_11 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_t_4};
    __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 817, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
  }
  if (__Pyx_SetNameInClass(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_unsafe, __pyx_t_13) < (0)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":772
 * 
 * 
 * class CastOptions(_CastOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `cast` function.
*/
  __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_CastOptions, __pyx_t_9, __pyx_t_12, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CastOptions, __pyx_t_13) < (0)) __PYX_ERR(0, 772, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":833
 * 
 * 
 * def _skip_nulls_doc():             # <<<<<<<<<<<<<<
 *     # (note the weird indent because of how the string is inserted
 *     #  by callers)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15_skip_nulls_doc, 0, __pyx_mstate_global->__pyx_n_u_skip_nulls_doc, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_skip_nulls_doc, __pyx_t_9) < (0)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":842
 * 
 * 
 * def _min_count_doc(*, default):             # <<<<<<<<<<<<<<
 *     return f"""min_count : int, default {default}
 *         Minimum number of non-null values in the input.  If the number
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_min_count_doc, 0, __pyx_mstate_global->__pyx_n_u_min_count_doc, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_min_count_doc, __pyx_t_9) < (0)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":850
 * 
 * cdef class _ElementWiseAggregateOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CElementWiseAggregateOptions(skip_nulls))
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_28_ElementWiseAggregateOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ElementWiseAggregateOptions__se, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_9) < (0)) __PYX_ERR(0, 850, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_28_ElementWiseAggregateOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ElementWiseAggregateOptions___r, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_28_ElementWiseAggregateOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ElementWiseAggregateOptions___s, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":854
 * 
 * 
 * class ElementWiseAggregateOptions(_ElementWiseAggregateOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for element-wise aggregate functions.
*/
  __pyx_t_9 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ElementWiseAggregateOptions)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_ElementWiseAggregateOptions_2, __pyx_mstate_global->__pyx_n_u_ElementWiseAggregateOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, (PyObject *) NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__pyx_t_2 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_13, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(0, 854, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":860
 *     Parameters
 *     ----------
 *     {_skip_nulls_doc()}             # <<<<<<<<<<<<<<
 *     """
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_skip_nulls_doc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_15[0] = __pyx_mstate_global->__pyx_kp_u_Options_for_element_wise_aggreg;
  __pyx_t_15[1] = __pyx_t_9;
  __pyx_t_15[2] = __pyx_mstate_global->__pyx_kp_u__9;

  /* "pyarrow/_compute.pyx":855
 * 
 * class ElementWiseAggregateOptions(_ElementWiseAggregateOptions):
 *     __doc__ = f"""             # <<<<<<<<<<<<<<
 *     Options for element-wise aggregate functions.
 * 
*/
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_15, 3, 86 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 5, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_doc, __pyx_t_4) < (0)) __PYX_ERR(0, 855, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":863
 *     """
 * 
 *     def __init__(self, *, skip_nulls=True):             # <<<<<<<<<<<<<<
 *         self._set_options(skip_nulls)
 * 
*/
  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_skip_nulls, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 863, __pyx_L1_error)
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_27ElementWiseAggregateOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ElementWiseAggregateOptions___in, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_9, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_9) < (0)) __PYX_ERR(0, 863, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":854
 * 
 * 
 * class ElementWiseAggregateOptions(_ElementWiseAggregateOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for element-wise aggregate functions.
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_ElementWiseAggregateOptions_2, __pyx_t_2, __pyx_t_13, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ElementWiseAggregateOptions_2, __pyx_t_9) < (0)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":892
 * 
 * cdef class _RoundOptions(FunctionOptions):
 *     def _set_options(self, ndigits, round_mode):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CRoundOptions(ndigits, unwrap_round_mode(round_mode))
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_RoundOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 892, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_RoundOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_RoundOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":898
 * 
 * 
 * class RoundOptions(_RoundOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for rounding numbers.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_CalculateMetaclass(NULL, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_13, __pyx_t_12, __pyx_mstate_global->__pyx_n_u_RoundOptions_2, __pyx_mstate_global->__pyx_n_u_RoundOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_rounding_numbers_Pa); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_12 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 898, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":913
 *     """
 * 
 *     def __init__(self, ndigits=0, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(ndigits, round_mode)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12RoundOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_RoundOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[6]);
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":898
 * 
 * 
 * class RoundOptions(_RoundOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for rounding numbers.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_RoundOptions_2, __pyx_t_12, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RoundOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 898, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":918
 * 
 * cdef class _RoundBinaryOptions(FunctionOptions):
 *     def _set_options(self, round_mode):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CRoundBinaryOptions(unwrap_round_mode(round_mode))
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19_RoundBinaryOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundBinaryOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_12) < (0)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19_RoundBinaryOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundBinaryOptions___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19_RoundBinaryOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundBinaryOptions___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":924
 * 
 * 
 * class RoundBinaryOptions(_RoundBinaryOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for rounding numbers when ndigits is provided by a second array
*/
  __pyx_t_12 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundBinaryOptions)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PEP560_update_bases(__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_13, __pyx_mstate_global->__pyx_n_u_RoundBinaryOptions_2, __pyx_mstate_global->__pyx_n_u_RoundBinaryOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_rounding_numbers_wh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_13 != __pyx_t_12) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_12) < 0))) __PYX_ERR(0, 924, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":937
 *     """
 * 
 *     def __init__(self, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(round_mode)
 * 
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18RoundBinaryOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_RoundBinaryOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[7]);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(0, 937, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":924
 * 
 * 
 * class RoundBinaryOptions(_RoundBinaryOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for rounding numbers when ndigits is provided by a second array
*/
  __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_RoundBinaryOptions_2, __pyx_t_13, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RoundBinaryOptions_2, __pyx_t_12) < (0)) __PYX_ERR(0, 924, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":968
 * 
 * cdef class _RoundTemporalOptions(FunctionOptions):
 *     def _set_options(self, multiple, unit, week_starts_monday,             # <<<<<<<<<<<<<<
 *                      ceil_is_strictly_greater, calendar_based_origin):
 *         self.wrapped.reset(
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_21_RoundTemporalOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundTemporalOptions__set_optio, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 968, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_13) < (0)) __PYX_ERR(0, 968, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_21_RoundTemporalOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundTemporalOptions___reduce_c, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_21_RoundTemporalOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundTemporalOptions___setstate, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":978
 * 
 * 
 * class RoundTemporalOptions(_RoundTemporalOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for rounding temporal values.
*/
  __pyx_t_13 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundTemporalOptions)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_RoundTemporalOptions_2, __pyx_mstate_global->__pyx_n_u_RoundTemporalOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_rounding_temporal_v); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__pyx_t_9 != __pyx_t_13) {
    if (unlikely((PyDict_SetItemString(__pyx_t_12, "__orig_bases__", __pyx_t_13) < 0))) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1022
 *     """
 * 
 *     def __init__(self, multiple=1, unit="day", *, week_starts_monday=True,             # <<<<<<<<<<<<<<
 *                  ceil_is_strictly_greater=False,
 *                  calendar_based_origin=False):
*/
  __pyx_t_13 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_week_starts_monday, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 1022, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_ceil_is_strictly_greater, ((PyObject*)Py_False)) < (0)) __PYX_ERR(0, 1022, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_calendar_based_origin, ((PyObject*)Py_False)) < (0)) __PYX_ERR(0, 1022, __pyx_L1_error)
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20RoundTemporalOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_RoundTemporalOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[8]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_4, __pyx_t_13);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 1022, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":978
 * 
 * 
 * class RoundTemporalOptions(_RoundTemporalOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for rounding temporal values.
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RoundTemporalOptions_2, __pyx_t_9, __pyx_t_12, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RoundTemporalOptions_2, __pyx_t_4) < (0)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1031
 * 
 * cdef class _RoundToMultipleOptions(FunctionOptions):
 *     def _set_options(self, multiple, round_mode):             # <<<<<<<<<<<<<<
 *         if not isinstance(multiple, Scalar):
 *             try:
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_23_RoundToMultipleOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundToMultipleOptions__set_opt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_9) < (0)) __PYX_ERR(0, 1031, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_23_RoundToMultipleOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundToMultipleOptions___reduce, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_23_RoundToMultipleOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RoundToMultipleOptions___setsta, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1046
 * 
 * 
 * class RoundToMultipleOptions(_RoundToMultipleOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for rounding numbers to a multiple.
*/
  __pyx_t_9 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RoundToMultipleOptions)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_RoundToMultipleOptions_2, __pyx_mstate_global->__pyx_n_u_RoundToMultipleOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_rounding_numbers_to); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_2 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(0, 1046, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1062
 *     """
 * 
 *     def __init__(self, multiple=1.0, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(multiple, round_mode)
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_22RoundToMultipleOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_RoundToMultipleOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1062, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[9]);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_9) < (0)) __PYX_ERR(0, 1062, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1046
 * 
 * 
 * class RoundToMultipleOptions(_RoundToMultipleOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for rounding numbers to a multiple.
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_RoundToMultipleOptions_2, __pyx_t_2, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1046, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RoundToMultipleOptions_2, __pyx_t_9) < (0)) __PYX_ERR(0, 1046, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1068
 * cdef class _JoinOptions(FunctionOptions):
 *     _null_handling_map = {
 *         "emit_null": CJoinNullHandlingBehavior_EMIT_NULL,             # <<<<<<<<<<<<<<
 *         "skip": CJoinNullHandlingBehavior_SKIP,
 *         "replace": CJoinNullHandlingBehavior_REPLACE,
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_JoinOptions_3a__3a_NullHandlingBehavior(arrow::compute::JoinOptions::EMIT_NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_emit_null, __pyx_t_12) < (0)) __PYX_ERR(0, 1068, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1069
 *     _null_handling_map = {
 *         "emit_null": CJoinNullHandlingBehavior_EMIT_NULL,
 *         "skip": CJoinNullHandlingBehavior_SKIP,             # <<<<<<<<<<<<<<
 *         "replace": CJoinNullHandlingBehavior_REPLACE,
 *     }
*/
  __pyx_t_12 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_JoinOptions_3a__3a_NullHandlingBehavior(arrow::compute::JoinOptions::SKIP); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1069, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_skip, __pyx_t_12) < (0)) __PYX_ERR(0, 1068, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1070
 *         "emit_null": CJoinNullHandlingBehavior_EMIT_NULL,
 *         "skip": CJoinNullHandlingBehavior_SKIP,
 *         "replace": CJoinNullHandlingBehavior_REPLACE,             # <<<<<<<<<<<<<<
 *     }
 * 
*/
  __pyx_t_12 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_JoinOptions_3a__3a_NullHandlingBehavior(arrow::compute::JoinOptions::REPLACE); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_replace, __pyx_t_12) < (0)) __PYX_ERR(0, 1068, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__JoinOptions, __pyx_mstate_global->__pyx_n_u_null_handling_map, __pyx_t_2) < (0)) __PYX_ERR(0, 1067, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1073
 *     }
 * 
 *     def _set_options(self, null_handling, null_replacement):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_JoinOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_JoinOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__JoinOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 1073, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_JoinOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_JoinOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_JoinOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_JoinOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1083
 * 
 * 
 * class JoinOptions(_JoinOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `binary_join_element_wise` function.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__JoinOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_12, __pyx_mstate_global->__pyx_n_u_JoinOptions_2, __pyx_mstate_global->__pyx_n_u_JoinOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_binary_join_ele); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_12 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 1083, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1097
 *     """
 * 
 *     def __init__(self, null_handling="emit_null", null_replacement=""):             # <<<<<<<<<<<<<<
 *         self._set_options(null_handling, null_replacement)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11JoinOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_JoinOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[10]);
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 1097, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1083
 * 
 * 
 * class JoinOptions(_JoinOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `binary_join_element_wise` function.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_JoinOptions_2, __pyx_t_12, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_JoinOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1083, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1102
 * 
 * cdef class _MatchSubstringOptions(FunctionOptions):
 *     def _set_options(self, pattern, ignore_case):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CMatchSubstringOptions(tobytes(pattern), ignore_case)
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_22_MatchSubstringOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MatchSubstringOptions__set_opti, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_12) < (0)) __PYX_ERR(0, 1102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_22_MatchSubstringOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MatchSubstringOptions___reduce, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_22_MatchSubstringOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MatchSubstringOptions___setstat, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1108
 * 
 * 
 * class MatchSubstringOptions(_MatchSubstringOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for looking for a substring.
*/
  __pyx_t_12 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__MatchSubstringOptions)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_MatchSubstringOptions_2, __pyx_mstate_global->__pyx_n_u_MatchSubstringOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_looking_for_a_subst); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_4 != __pyx_t_12) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_12) < 0))) __PYX_ERR(0, 1108, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1120
 *     """
 * 
 *     def __init__(self, pattern, *, ignore_case=False):             # <<<<<<<<<<<<<<
 *         self._set_options(pattern, ignore_case)
 * 
*/
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_ignore_case, ((PyObject*)Py_False)) < (0)) __PYX_ERR(0, 1120, __pyx_L1_error)
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_21MatchSubstringOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_MatchSubstringOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1120, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_13, __pyx_t_12);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_13) < (0)) __PYX_ERR(0, 1120, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1108
 * 
 * 
 * class MatchSubstringOptions(_MatchSubstringOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for looking for a substring.
*/
  __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MatchSubstringOptions_2, __pyx_t_4, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MatchSubstringOptions_2, __pyx_t_13) < (0)) __PYX_ERR(0, 1108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1125
 * 
 * cdef class _PadOptions(FunctionOptions):
 *     def _set_options(self, width, padding, lean_left_on_odd_padding):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CPadOptions(width, tobytes(padding), lean_left_on_odd_padding))
 * 
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11_PadOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PadOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PadOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_4) < (0)) __PYX_ERR(0, 1125, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11_PadOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PadOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11_PadOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PadOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1129
 * 
 * 
 * class PadOptions(_PadOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for padding strings.
*/
  __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PadOptions)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_PadOptions_2, __pyx_mstate_global->__pyx_n_u_PadOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_padding_strings_Par); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__pyx_t_9 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_13, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 1129, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1145
 *     """
 * 
 *     def __init__(self, width, padding=' ', lean_left_on_odd_padding=True):             # <<<<<<<<<<<<<<
 *         self._set_options(width, padding, lean_left_on_odd_padding)
 * 
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10PadOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_PadOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[11]);
  if (__Pyx_SetNameInClass(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 1145, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1129
 * 
 * 
 * class PadOptions(_PadOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for padding strings.
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PadOptions_2, __pyx_t_9, __pyx_t_13, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PadOptions_2, __pyx_t_4) < (0)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1150
 * 
 * cdef class _ZeroFillOptions(FunctionOptions):
 *     def _set_options(self, width, padding):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CZeroFillOptions(width, tobytes(padding)))
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_ZeroFillOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ZeroFillOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_9) < (0)) __PYX_ERR(0, 1150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_ZeroFillOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ZeroFillOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_ZeroFillOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ZeroFillOptions___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1154
 * 
 * 
 * class ZeroFillOptions(_ZeroFillOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for utf8_zero_fill.
*/
  __pyx_t_9 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ZeroFillOptions)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_13, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_ZeroFillOptions_2, __pyx_mstate_global->__pyx_n_u_ZeroFillOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_utf8_zero_fill_Para); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_2 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(0, 1154, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1175
 *     """
 * 
 *     def __init__(self, width, padding='0'):             # <<<<<<<<<<<<<<
 *         self._set_options(width, padding)
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15ZeroFillOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ZeroFillOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[12]);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_9) < (0)) __PYX_ERR(0, 1175, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1154
 * 
 * 
 * class ZeroFillOptions(_ZeroFillOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for utf8_zero_fill.
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_ZeroFillOptions_2, __pyx_t_2, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ZeroFillOptions_2, __pyx_t_9) < (0)) __PYX_ERR(0, 1154, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1180
 * 
 * cdef class _TrimOptions(FunctionOptions):
 *     def _set_options(self, characters):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CTrimOptions(tobytes(characters)))
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_TrimOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TrimOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1180, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__TrimOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 1180, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_TrimOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TrimOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_TrimOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TrimOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1184
 * 
 * 
 * class TrimOptions(_TrimOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for trimming characters from strings.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__TrimOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_13, __pyx_mstate_global->__pyx_n_u_TrimOptions_2, __pyx_mstate_global->__pyx_n_u_TrimOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_trimming_characters); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_13 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 1184, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1194
 *     """
 * 
 *     def __init__(self, characters):             # <<<<<<<<<<<<<<
 *         self._set_options(tobytes(characters))
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11TrimOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_TrimOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 1194, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1184
 * 
 * 
 * class TrimOptions(_TrimOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for trimming characters from strings.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TrimOptions_2, __pyx_t_13, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TrimOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1199
 * 
 * cdef class _ReplaceSubstringOptions(FunctionOptions):
 *     def _set_options(self, pattern, replacement, max_replacements):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CReplaceSubstringOptions(tobytes(pattern),
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_24_ReplaceSubstringOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReplaceSubstringOptions__set_op, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_13) < (0)) __PYX_ERR(0, 1199, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_24_ReplaceSubstringOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReplaceSubstringOptions___reduc, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_24_ReplaceSubstringOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReplaceSubstringOptions___setst, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1207
 * 
 * 
 * class ReplaceSubstringOptions(_ReplaceSubstringOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for replacing matched substrings.
*/
  __pyx_t_13 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ReplaceSubstringOptions)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_ReplaceSubstringOptions_2, __pyx_mstate_global->__pyx_n_u_ReplaceSubstringOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_replacing_matched_s); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_4 != __pyx_t_13) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_13) < 0))) __PYX_ERR(0, 1207, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1222
 *     """
 * 
 *     def __init__(self, pattern, replacement, *, max_replacements=None):             # <<<<<<<<<<<<<<
 *         if max_replacements is None:
 *             max_replacements = -1
*/
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_max_replacements, Py_None) < (0)) __PYX_ERR(0, 1222, __pyx_L1_error)
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_23ReplaceSubstringOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ReplaceSubstringOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_12, __pyx_t_13);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(0, 1222, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1207
 * 
 * 
 * class ReplaceSubstringOptions(_ReplaceSubstringOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for replacing matched substrings.
*/
  __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_ReplaceSubstringOptions_2, __pyx_t_4, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ReplaceSubstringOptions_2, __pyx_t_12) < (0)) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1229
 * 
 * cdef class _ExtractRegexOptions(FunctionOptions):
 *     def _set_options(self, pattern):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CExtractRegexOptions(tobytes(pattern)))
 * 
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_ExtractRegexOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ExtractRegexOptions__set_option, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_4) < (0)) __PYX_ERR(0, 1229, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_ExtractRegexOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ExtractRegexOptions___reduce_cy, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_ExtractRegexOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ExtractRegexOptions___setstate, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1233
 * 
 * 
 * class ExtractRegexOptions(_ExtractRegexOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `extract_regex` function.
*/
  __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ExtractRegexOptions)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_ExtractRegexOptions_2, __pyx_mstate_global->__pyx_n_u_ExtractRegexOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_extract_regex_f); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__pyx_t_9 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_12, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 1233, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1243
 *     """
 * 
 *     def __init__(self, pattern):             # <<<<<<<<<<<<<<
 *         self._set_options(pattern)
 * 
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19ExtractRegexOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ExtractRegexOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 1243, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1233
 * 
 * 
 * class ExtractRegexOptions(_ExtractRegexOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `extract_regex` function.
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ExtractRegexOptions_2, __pyx_t_9, __pyx_t_12, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ExtractRegexOptions_2, __pyx_t_4) < (0)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1248
 * 
 * cdef class _ExtractRegexSpanOptions(FunctionOptions):
 *     def _set_options(self, pattern):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CExtractRegexSpanOptions(tobytes(pattern)))
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_24_ExtractRegexSpanOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ExtractRegexSpanOptions__set_op, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_9) < (0)) __PYX_ERR(0, 1248, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_24_ExtractRegexSpanOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ExtractRegexSpanOptions___reduc, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_24_ExtractRegexSpanOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ExtractRegexSpanOptions___setst, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1252
 * 
 * 
 * class ExtractRegexSpanOptions(_ExtractRegexSpanOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `extract_regex_span` function.
*/
  __pyx_t_9 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ExtractRegexSpanOptions)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_ExtractRegexSpanOptions_2, __pyx_mstate_global->__pyx_n_u_ExtractRegexSpanOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_extract_regex_s); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_2 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(0, 1252, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1262
 *     """
 * 
 *     def __init__(self, pattern):             # <<<<<<<<<<<<<<
 *         self._set_options(pattern)
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_23ExtractRegexSpanOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ExtractRegexSpanOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_9) < (0)) __PYX_ERR(0, 1262, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1252
 * 
 * 
 * class ExtractRegexSpanOptions(_ExtractRegexSpanOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `extract_regex_span` function.
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_ExtractRegexSpanOptions_2, __pyx_t_2, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ExtractRegexSpanOptions_2, __pyx_t_9) < (0)) __PYX_ERR(0, 1252, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1267
 * 
 * cdef class _SliceOptions(FunctionOptions):
 *     def _set_options(self, start, stop, step):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSliceOptions(start, stop, step))
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_SliceOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SliceOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SliceOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 1267, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_SliceOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SliceOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_SliceOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SliceOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1271
 * 
 * 
 * class SliceOptions(_SliceOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for slicing.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SliceOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_12, __pyx_mstate_global->__pyx_n_u_SliceOptions_2, __pyx_mstate_global->__pyx_n_u_SliceOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_slicing_Parameters); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_12 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 1271, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1286
 *     """
 * 
 *     def __init__(self, start, stop=None, step=1):             # <<<<<<<<<<<<<<
 *         if stop is None:
 *             stop = sys.maxsize
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12SliceOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_SliceOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[13]);
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 1286, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1271
 * 
 * 
 * class SliceOptions(_SliceOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for slicing.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SliceOptions_2, __pyx_t_12, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SliceOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1295
 * 
 * cdef class _ListSliceOptions(FunctionOptions):
 *     cpdef _set_options(self, start, stop=None, step=1, return_fixed_size_list=None):             # <<<<<<<<<<<<<<
 *         cdef:
 *             CListSliceOptions* opts
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_ListSliceOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ListSliceOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[14]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_12) < (0)) __PYX_ERR(0, 1295, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_ListSliceOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ListSliceOptions___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_ListSliceOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ListSliceOptions___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1309
 * 
 * 
 * class ListSliceOptions(_ListSliceOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for list array slicing.
*/
  __pyx_t_12 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ListSliceOptions)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_ListSliceOptions_2, __pyx_mstate_global->__pyx_n_u_ListSliceOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_list_array_slicing); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_4 != __pyx_t_12) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_12) < 0))) __PYX_ERR(0, 1309, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1329
 *     """
 * 
 *     def __init__(self, start, stop=None, step=1, return_fixed_size_list=None):             # <<<<<<<<<<<<<<
 *         self._set_options(start, stop, step, return_fixed_size_list)
 * 
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16ListSliceOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ListSliceOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[14]);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(0, 1329, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1309
 * 
 * 
 * class ListSliceOptions(_ListSliceOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for list array slicing.
*/
  __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_ListSliceOptions_2, __pyx_t_4, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ListSliceOptions_2, __pyx_t_12) < (0)) __PYX_ERR(0, 1309, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1334
 * 
 * cdef class _ReplaceSliceOptions(FunctionOptions):
 *     def _set_options(self, start, stop, replacement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CReplaceSliceOptions(start, stop, tobytes(replacement))
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_ReplaceSliceOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReplaceSliceOptions__set_option, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_4) < (0)) __PYX_ERR(0, 1334, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_ReplaceSliceOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReplaceSliceOptions___reduce_cy, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_ReplaceSliceOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ReplaceSliceOptions___setstate, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1340
 * 
 * 
 * class ReplaceSliceOptions(_ReplaceSliceOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for replacing slices.
*/
  __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ReplaceSliceOptions)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_ReplaceSliceOptions_2, __pyx_mstate_global->__pyx_n_u_ReplaceSliceOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_replacing_slices_Pa); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__pyx_t_9 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_12, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 1340, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1354
 *     """
 * 
 *     def __init__(self, start, stop, replacement):             # <<<<<<<<<<<<<<
 *         self._set_options(start, stop, replacement)
 * 
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19ReplaceSliceOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ReplaceSliceOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 1354, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1340
 * 
 * 
 * class ReplaceSliceOptions(_ReplaceSliceOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for replacing slices.
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ReplaceSliceOptions_2, __pyx_t_9, __pyx_t_12, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ReplaceSliceOptions_2, __pyx_t_4) < (0)) __PYX_ERR(0, 1340, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1360
 * cdef class _FilterOptions(FunctionOptions):
 *     _null_selection_map = {
 *         "drop": CFilterNullSelectionBehavior_DROP,             # <<<<<<<<<<<<<<
 *         "emit_null": CFilterNullSelectionBehavior_EMIT_NULL,
 *     }
*/
  __pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_FilterOptions_3a__3a_NullSelectionBehavior(arrow::compute::FilterOptions::DROP); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_drop, __pyx_t_2) < (0)) __PYX_ERR(0, 1360, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1361
 *     _null_selection_map = {
 *         "drop": CFilterNullSelectionBehavior_DROP,
 *         "emit_null": CFilterNullSelectionBehavior_EMIT_NULL,             # <<<<<<<<<<<<<<
 *     }
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_FilterOptions_3a__3a_NullSelectionBehavior(arrow::compute::FilterOptions::EMIT_NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_emit_null, __pyx_t_2) < (0)) __PYX_ERR(0, 1360, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__FilterOptions, __pyx_mstate_global->__pyx_n_u_null_selection_map, __pyx_t_9) < (0)) __PYX_ERR(0, 1359, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1364
 *     }
 * 
 *     def _set_options(self, null_selection_behavior):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_14_FilterOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FilterOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__FilterOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_9) < (0)) __PYX_ERR(0, 1364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_14_FilterOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FilterOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_14_FilterOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FilterOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1376
 * 
 * 
 * class FilterOptions(_FilterOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for selecting with a boolean filter.
*/
  __pyx_t_9 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__FilterOptions)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_FilterOptions_2, __pyx_mstate_global->__pyx_n_u_FilterOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_selecting_with_a_bo); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_2 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(0, 1376, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1387
 *     """
 * 
 *     def __init__(self, null_selection_behavior="drop"):             # <<<<<<<<<<<<<<
 *         self._set_options(null_selection_behavior)
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13FilterOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_FilterOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[15]);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_9) < (0)) __PYX_ERR(0, 1387, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1376
 * 
 * 
 * class FilterOptions(_FilterOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for selecting with a boolean filter.
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_FilterOptions_2, __pyx_t_2, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FilterOptions_2, __pyx_t_9) < (0)) __PYX_ERR(0, 1376, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1393
 * cdef class _DictionaryEncodeOptions(FunctionOptions):
 *     _null_encoding_map = {
 *         "encode": CDictionaryEncodeNullEncodingBehavior_ENCODE,             # <<<<<<<<<<<<<<
 *         "mask": CDictionaryEncodeNullEncodingBehavior_MASK,
 *     }
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_DictionaryEncodeOptions_3a__3a_NullEncodingBehavior(arrow::compute::DictionaryEncodeOptions::ENCODE); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_encode, __pyx_t_12) < (0)) __PYX_ERR(0, 1393, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1394
 *     _null_encoding_map = {
 *         "encode": CDictionaryEncodeNullEncodingBehavior_ENCODE,
 *         "mask": CDictionaryEncodeNullEncodingBehavior_MASK,             # <<<<<<<<<<<<<<
 *     }
 * 
*/
  __pyx_t_12 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_DictionaryEncodeOptions_3a__3a_NullEncodingBehavior(arrow::compute::DictionaryEncodeOptions::MASK); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_mask, __pyx_t_12) < (0)) __PYX_ERR(0, 1393, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions, __pyx_mstate_global->__pyx_n_u_null_encoding_map, __pyx_t_2) < (0)) __PYX_ERR(0, 1392, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1397
 *     }
 * 
 *     def _set_options(self, null_encoding):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_24_DictionaryEncodeOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DictionaryEncodeOptions__set_op, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_24_DictionaryEncodeOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DictionaryEncodeOptions___reduc, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_24_DictionaryEncodeOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DictionaryEncodeOptions___setst, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1408
 * 
 * 
 * class DictionaryEncodeOptions(_DictionaryEncodeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for dictionary encoding.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__DictionaryEncodeOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_12, __pyx_mstate_global->__pyx_n_u_DictionaryEncodeOptions_2, __pyx_mstate_global->__pyx_n_u_DictionaryEncodeOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_dictionary_encoding); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_12 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 1408, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1421
 *     """
 * 
 *     def __init__(self, null_encoding="mask"):             # <<<<<<<<<<<<<<
 *         self._set_options(null_encoding)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_23DictionaryEncodeOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_DictionaryEncodeOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[16]);
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 1421, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1408
 * 
 * 
 * class DictionaryEncodeOptions(_DictionaryEncodeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for dictionary encoding.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DictionaryEncodeOptions_2, __pyx_t_12, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1408, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DictionaryEncodeOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1408, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1426
 * 
 * cdef class _RunEndEncodeOptions(FunctionOptions):
 *     def _set_options(self, run_end_type):             # <<<<<<<<<<<<<<
 *         run_end_ty = ensure_type(run_end_type)
 *         self.wrapped.reset(new CRunEndEncodeOptions(pyarrow_unwrap_data_type(run_end_ty)))
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_RunEndEncodeOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RunEndEncodeOptions__set_option, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_12) < (0)) __PYX_ERR(0, 1426, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_RunEndEncodeOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RunEndEncodeOptions___reduce_cy, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_RunEndEncodeOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RunEndEncodeOptions___setstate, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1431
 * 
 * 
 * class RunEndEncodeOptions(_RunEndEncodeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for run-end encoding.
*/
  __pyx_t_12 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RunEndEncodeOptions)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_RunEndEncodeOptions_2, __pyx_mstate_global->__pyx_n_u_RunEndEncodeOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_run_end_encoding_Pa); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_4 != __pyx_t_12) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_12) < 0))) __PYX_ERR(0, 1431, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1443
 *     """
 * 
 *     def __init__(self, run_end_type=lib.int32()):             # <<<<<<<<<<<<<<
 *         self._set_options(run_end_type)
 * 
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19RunEndEncodeOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_RunEndEncodeOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, __pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute___pyx_defaults)) __PYX_ERR(0, 1443, __pyx_L1_error)
  __pyx_t_14 = NULL;
  __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_lib); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_int32); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1443, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __pyx_t_11 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_14, NULL};
    __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_17, __pyx_callargs+__pyx_t_11, (1-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
  }
  __Pyx_CyFunction_Defaults(struct __pyx_defaults, __pyx_t_12)->arg0 = __pyx_t_13;
  __Pyx_GIVEREF(__pyx_t_13);
  __pyx_t_13 = 0;
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_7pyarrow_8_compute_36__defaults__);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(0, 1443, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1431
 * 
 * 
 * class RunEndEncodeOptions(_RunEndEncodeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for run-end encoding.
*/
  __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_RunEndEncodeOptions_2, __pyx_t_4, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RunEndEncodeOptions_2, __pyx_t_12) < (0)) __PYX_ERR(0, 1431, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1448
 * 
 * cdef class _InversePermutationOptions(FunctionOptions):
 *     def _set_options(self, max_index=-1, output_type=None):             # <<<<<<<<<<<<<<
 *         cdef optional[shared_ptr[CDataType]] c_output_type = nullopt
 *         if output_type is not None:
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_26_InversePermutationOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_InversePermutationOptions__set, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_4) < (0)) __PYX_ERR(0, 1448, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_26_InversePermutationOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_InversePermutationOptions___red, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_26_InversePermutationOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_InversePermutationOptions___set, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1456
 * 
 * 
 * class InversePermutationOptions(_InversePermutationOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `inverse_permutation` function.
*/
  __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__InversePermutationOptions)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_InversePermutationOptions_2, __pyx_mstate_global->__pyx_n_u_InversePermutationOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_inverse_permutation); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__pyx_t_9 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_12, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 1456, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1475
 *     """
 * 
 *     def __init__(self, max_index=-1, output_type=None):             # <<<<<<<<<<<<<<
 *         self._set_options(max_index, output_type)
 * 
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_25InversePermutationOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_InversePermutationOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1475, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]);
  if (__Pyx_SetNameInClass(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 1475, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1456
 * 
 * 
 * class InversePermutationOptions(_InversePermutationOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `inverse_permutation` function.
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_InversePermutationOptions_2, __pyx_t_9, __pyx_t_12, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_InversePermutationOptions_2, __pyx_t_4) < (0)) __PYX_ERR(0, 1456, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1480
 * 
 * cdef class _ScatterOptions(FunctionOptions):
 *     def _set_options(self, max_index):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CScatterOptions(max_index))
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15_ScatterOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ScatterOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ScatterOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_9) < (0)) __PYX_ERR(0, 1480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15_ScatterOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ScatterOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15_ScatterOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ScatterOptions___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1484
 * 
 * 
 * class ScatterOptions(_ScatterOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `scatter` function.
*/
  __pyx_t_9 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ScatterOptions)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_ScatterOptions_2, __pyx_mstate_global->__pyx_n_u_ScatterOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_scatter_function_Pa); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_2 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(0, 1484, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1497
 *     """
 * 
 *     def __init__(self, max_index=-1):             # <<<<<<<<<<<<<<
 *         self._set_options(max_index)
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_14ScatterOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ScatterOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[18]);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_9) < (0)) __PYX_ERR(0, 1497, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1484
 * 
 * 
 * class ScatterOptions(_ScatterOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `scatter` function.
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_ScatterOptions_2, __pyx_t_2, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ScatterOptions_2, __pyx_t_9) < (0)) __PYX_ERR(0, 1484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1502
 * 
 * cdef class _TakeOptions(FunctionOptions):
 *     def _set_options(self, boundscheck):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CTakeOptions(boundscheck))
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_TakeOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TakeOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__TakeOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 1502, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_TakeOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TakeOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_TakeOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TakeOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1506
 * 
 * 
 * class TakeOptions(_TakeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `take` and `array_take` functions.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__TakeOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_12, __pyx_mstate_global->__pyx_n_u_TakeOptions_2, __pyx_mstate_global->__pyx_n_u_TakeOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_take_and_array); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_12 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 1506, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1518
 *     """
 * 
 *     def __init__(self, *, boundscheck=True):             # <<<<<<<<<<<<<<
 *         self._set_options(boundscheck)
 * 
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_boundscheck, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 1518, __pyx_L1_error)
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11TakeOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_TakeOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_13, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_13) < (0)) __PYX_ERR(0, 1518, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1506
 * 
 * 
 * class TakeOptions(_TakeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `take` and `array_take` functions.
*/
  __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TakeOptions_2, __pyx_t_12, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TakeOptions_2, __pyx_t_13) < (0)) __PYX_ERR(0, 1506, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1523
 * 
 * cdef class _MakeStructOptions(FunctionOptions):
 *     def _set_options(self, field_names, field_nullability, field_metadata):             # <<<<<<<<<<<<<<
 *         cdef:
 *             vector[c_string] c_field_names
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18_MakeStructOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MakeStructOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_12) < (0)) __PYX_ERR(0, 1523, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18_MakeStructOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MakeStructOptions___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18_MakeStructOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MakeStructOptions___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1537
 * 
 * 
 * class MakeStructOptions(_MakeStructOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `make_struct` function.
*/
  __pyx_t_12 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__MakeStructOptions)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_13 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_MakeStructOptions_2, __pyx_mstate_global->__pyx_n_u_MakeStructOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_make_struct_fun); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__pyx_t_4 != __pyx_t_12) {
    if (unlikely((PyDict_SetItemString(__pyx_t_13, "__orig_bases__", __pyx_t_12) < 0))) __PYX_ERR(0, 1537, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1552
 *     """
 * 
 *     def __init__(self, field_names=(), *, field_nullability=None,             # <<<<<<<<<<<<<<
 *                  field_metadata=None):
 *         if field_nullability is None:
*/
  __pyx_t_12 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_field_nullability, Py_None) < (0)) __PYX_ERR(0, 1552, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1553
 * 
 *     def __init__(self, field_names=(), *, field_nullability=None,
 *                  field_metadata=None):             # <<<<<<<<<<<<<<
 *         if field_nullability is None:
 *             field_nullability = [True] * len(field_names)
*/
  if (PyDict_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_field_metadata, Py_None) < (0)) __PYX_ERR(0, 1552, __pyx_L1_error)

  /* "pyarrow/_compute.pyx":1552
 *     """
 * 
 *     def __init__(self, field_names=(), *, field_nullability=None,             # <<<<<<<<<<<<<<
 *                  field_metadata=None):
 *         if field_nullability is None:
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17MakeStructOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_MakeStructOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[19]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_12);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 1552, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1537
 * 
 * 
 * class MakeStructOptions(_MakeStructOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `make_struct` function.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MakeStructOptions_2, __pyx_t_4, __pyx_t_13, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MakeStructOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1537, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1589
 * 
 * cdef class _StructFieldOptions(FunctionOptions):
 *     def _set_options(self, indices):             # <<<<<<<<<<<<<<
 * 
 *         if isinstance(indices, (list, tuple)) and not len(indices):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19_StructFieldOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StructFieldOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_4) < (0)) __PYX_ERR(0, 1589, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19_StructFieldOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StructFieldOptions___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19_StructFieldOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StructFieldOptions___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1601
 * 
 * 
 * class StructFieldOptions(_StructFieldOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `struct_field` function.
*/
  __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__StructFieldOptions)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_13 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_13, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_StructFieldOptions_2, __pyx_mstate_global->__pyx_n_u_StructFieldOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_struct_field_fu); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_9 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 1601, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1612
 *     """
 * 
 *     def __init__(self, indices):             # <<<<<<<<<<<<<<
 *         self._set_options(indices)
 * 
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18StructFieldOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_StructFieldOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 1612, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1601
 * 
 * 
 * class StructFieldOptions(_StructFieldOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `struct_field` function.
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_StructFieldOptions_2, __pyx_t_9, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_StructFieldOptions_2, __pyx_t_4) < (0)) __PYX_ERR(0, 1601, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1617
 * 
 * cdef class _ScalarAggregateOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CScalarAggregateOptions(skip_nulls, min_count))
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_23_ScalarAggregateOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ScalarAggregateOptions__set_opt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_9) < (0)) __PYX_ERR(0, 1617, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_23_ScalarAggregateOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ScalarAggregateOptions___reduce, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_23_ScalarAggregateOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ScalarAggregateOptions___setsta, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1621
 * 
 * 
 * class ScalarAggregateOptions(_ScalarAggregateOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for scalar aggregations.
*/
  __pyx_t_9 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ScalarAggregateOptions)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_13 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_13, __pyx_mstate_global->__pyx_n_u_ScalarAggregateOptions_2, __pyx_mstate_global->__pyx_n_u_ScalarAggregateOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_13 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(0, 1621, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1627
 *     Parameters
 *     ----------
 *     {_skip_nulls_doc()}             # <<<<<<<<<<<<<<
 *     {_min_count_doc(default=1)}
 *     """
*/
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_skip_nulls_doc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_12 = __Pyx_PyObject_CallNoArg(__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_t_12, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1628
 *     ----------
 *     {_skip_nulls_doc()}
 *     {_min_count_doc(default=1)}             # <<<<<<<<<<<<<<
 *     """
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_min_count_doc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_17 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (PyDict_SetItem(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_1) < (0)) __PYX_ERR(0, 1628, __pyx_L1_error)
  __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_17); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_FormatSimple(__pyx_t_14, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_18[0] = __pyx_mstate_global->__pyx_kp_u_Options_for_scalar_aggregations;
  __pyx_t_18[1] = __pyx_t_9;
  __pyx_t_18[2] = __pyx_mstate_global->__pyx_kp_u__9;
  __pyx_t_18[3] = __pyx_t_17;
  __pyx_t_18[4] = __pyx_mstate_global->__pyx_kp_u__9;

  /* "pyarrow/_compute.pyx":1622
 * 
 * class ScalarAggregateOptions(_ScalarAggregateOptions):
 *     __doc__ = f"""             # <<<<<<<<<<<<<<
 *     Options for scalar aggregations.
 * 
*/
  __pyx_t_14 = __Pyx_PyUnicode_Join(__pyx_t_18, 5, 73 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 5 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_17));
  if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_doc, __pyx_t_14) < (0)) __PYX_ERR(0, 1622, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pyarrow/_compute.pyx":1631
 *     """
 * 
 *     def __init__(self, *, skip_nulls=True, min_count=1):             # <<<<<<<<<<<<<<
 *         self._set_options(skip_nulls, min_count)
 * 
*/
  __pyx_t_14 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (PyDict_SetItem(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_skip_nulls, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 1631, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_min_count, ((PyObject*)__pyx_mstate_global->__pyx_int_1)) < (0)) __PYX_ERR(0, 1631, __pyx_L1_error)
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_22ScalarAggregateOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ScalarAggregateOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_17, __pyx_t_14);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_17) < (0)) __PYX_ERR(0, 1631, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":1621
 * 
 * 
 * class ScalarAggregateOptions(_ScalarAggregateOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for scalar aggregations.
*/
  __pyx_t_17 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ScalarAggregateOptions_2, __pyx_t_13, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ScalarAggregateOptions_2, __pyx_t_17) < (0)) __PYX_ERR(0, 1621, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1637
 * cdef class _CountOptions(FunctionOptions):
 *     _mode_map = {
 *         "only_valid": CCountMode_ONLY_VALID,             # <<<<<<<<<<<<<<
 *         "only_null": CCountMode_ONLY_NULL,
 *         "all": CCountMode_ALL,
*/
  __pyx_t_13 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_2 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_CountOptions_3a__3a_CountMode(arrow::compute::CountOptions::ONLY_VALID); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_only_valid, __pyx_t_2) < (0)) __PYX_ERR(0, 1637, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1638
 *     _mode_map = {
 *         "only_valid": CCountMode_ONLY_VALID,
 *         "only_null": CCountMode_ONLY_NULL,             # <<<<<<<<<<<<<<
 *         "all": CCountMode_ALL,
 *     }
*/
  __pyx_t_2 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_CountOptions_3a__3a_CountMode(arrow::compute::CountOptions::ONLY_NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_only_null, __pyx_t_2) < (0)) __PYX_ERR(0, 1637, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1639
 *         "only_valid": CCountMode_ONLY_VALID,
 *         "only_null": CCountMode_ONLY_NULL,
 *         "all": CCountMode_ALL,             # <<<<<<<<<<<<<<
 *     }
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_CountOptions_3a__3a_CountMode(arrow::compute::CountOptions::ALL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1639, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_all, __pyx_t_2) < (0)) __PYX_ERR(0, 1637, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CountOptions, __pyx_mstate_global->__pyx_n_u_mode_map, __pyx_t_13) < (0)) __PYX_ERR(0, 1636, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1642
 *     }
 * 
 *     def _set_options(self, mode):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(new CCountOptions(self._mode_map[mode]))
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_CountOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CountOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CountOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_13) < (0)) __PYX_ERR(0, 1642, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_CountOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CountOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_CountOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CountOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1649
 * 
 * 
 * class CountOptions(_CountOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `count` function.
*/
  __pyx_t_13 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CountOptions)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_17 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_CountOptions_2, __pyx_mstate_global->__pyx_n_u_CountOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_count_function); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (__pyx_t_2 != __pyx_t_13) {
    if (unlikely((PyDict_SetItemString(__pyx_t_17, "__orig_bases__", __pyx_t_13) < 0))) __PYX_ERR(0, 1649, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1660
 *     """
 * 
 *     def __init__(self, mode="only_valid"):             # <<<<<<<<<<<<<<
 *         self._set_options(mode)
 * 
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12CountOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_CountOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_mstate_global->__pyx_tuple[20]);
  if (__Pyx_SetNameInClass(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_13) < (0)) __PYX_ERR(0, 1660, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1649
 * 
 * 
 * class CountOptions(_CountOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `count` function.
*/
  __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_CountOptions_2, __pyx_t_2, __pyx_t_17, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CountOptions_2, __pyx_t_13) < (0)) __PYX_ERR(0, 1649, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1665
 * 
 * cdef class _IndexOptions(FunctionOptions):
 *     def _set_options(self, scalar):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CIndexOptions(pyarrow_unwrap_scalar(scalar)))
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_IndexOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IndexOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__IndexOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 1665, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_IndexOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IndexOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_IndexOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IndexOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1669
 * 
 * 
 * class IndexOptions(_IndexOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `index` function.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__IndexOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_17 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_13 = __Pyx_Py3MetaclassPrepare(__pyx_t_17, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_IndexOptions_2, __pyx_mstate_global->__pyx_n_u_IndexOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_index_function); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__pyx_t_4 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_13, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 1669, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1679
 *     """
 * 
 *     def __init__(self, value):             # <<<<<<<<<<<<<<
 *         self._set_options(value)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12IndexOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_IndexOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1679, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 1679, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1669
 * 
 * 
 * class IndexOptions(_IndexOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `index` function.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_IndexOptions_2, __pyx_t_4, __pyx_t_13, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IndexOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1669, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1685
 * cdef class _MapLookupOptions(FunctionOptions):
 *     _occurrence_map = {
 *         "all": CMapLookupOccurrence_ALL,             # <<<<<<<<<<<<<<
 *         "first": CMapLookupOccurrence_FIRST,
 *         "last": CMapLookupOccurrence_LAST,
*/
  __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1685, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_17 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_MapLookupOptions_3a__3a_Occurrence(arrow::compute::MapLookupOptions::ALL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1685, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_all, __pyx_t_17) < (0)) __PYX_ERR(0, 1685, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":1686
 *     _occurrence_map = {
 *         "all": CMapLookupOccurrence_ALL,
 *         "first": CMapLookupOccurrence_FIRST,             # <<<<<<<<<<<<<<
 *         "last": CMapLookupOccurrence_LAST,
 *     }
*/
  __pyx_t_17 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_MapLookupOptions_3a__3a_Occurrence(arrow::compute::MapLookupOptions::FIRST); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_first, __pyx_t_17) < (0)) __PYX_ERR(0, 1685, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":1687
 *         "all": CMapLookupOccurrence_ALL,
 *         "first": CMapLookupOccurrence_FIRST,
 *         "last": CMapLookupOccurrence_LAST,             # <<<<<<<<<<<<<<
 *     }
 * 
*/
  __pyx_t_17 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_MapLookupOptions_3a__3a_Occurrence(arrow::compute::MapLookupOptions::LAST); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_last, __pyx_t_17) < (0)) __PYX_ERR(0, 1685, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions, __pyx_mstate_global->__pyx_n_u_occurrence_map, __pyx_t_4) < (0)) __PYX_ERR(0, 1684, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1690
 *     }
 * 
 *     def _set_options(self, query_key, occurrence):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_MapLookupOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MapLookupOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1690, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_4) < (0)) __PYX_ERR(0, 1690, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_MapLookupOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MapLookupOptions___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_MapLookupOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MapLookupOptions___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1703
 * 
 * 
 * class MapLookupOptions(_MapLookupOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `map_lookup` function.
*/
  __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__MapLookupOptions)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_17 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_13 = __Pyx_CalculateMetaclass(NULL, __pyx_t_17); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_13, __pyx_t_17, __pyx_mstate_global->__pyx_n_u_MapLookupOptions_2, __pyx_mstate_global->__pyx_n_u_MapLookupOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_map_lookup_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_17 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 1703, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1716
 *     """
 * 
 *     def __init__(self, query_key, occurrence):             # <<<<<<<<<<<<<<
 *         if not isinstance(query_key, lib.Scalar):
 *             query_key = lib.scalar(query_key)
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16MapLookupOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_MapLookupOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 1716, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1703
 * 
 * 
 * class MapLookupOptions(_MapLookupOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `map_lookup` function.
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_MapLookupOptions_2, __pyx_t_17, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MapLookupOptions_2, __pyx_t_4) < (0)) __PYX_ERR(0, 1703, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":1724
 * 
 * cdef class _ModeOptions(FunctionOptions):
 *     def _set_options(self, n, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CModeOptions(n, skip_nulls, min_count))
 * 
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_ModeOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ModeOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ModeOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_17) < (0)) __PYX_ERR(0, 1724, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_ModeOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ModeOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_17) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_ModeOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ModeOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_17) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":1728
 * 
 * 
 * class ModeOptions(_ModeOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for the `mode` function.
*/
  __pyx_t_17 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ModeOptions)); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_13 = __Pyx_PEP560_update_bases(__pyx_t_17); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_13, __pyx_mstate_global->__pyx_n_u_ModeOptions_2, __pyx_mstate_global->__pyx_n_u_ModeOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_13 != __pyx_t_17) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_17) < 0))) __PYX_ERR(0, 1728, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":1736
 *     n : int, default 1
 *         Number of distinct most-common values to return.
 *     {_skip_nulls_doc()}             # <<<<<<<<<<<<<<
 *     {_min_count_doc(default=0)}
 *     """
*/
  __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_skip_nulls_doc); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_14 = __Pyx_PyObject_CallNoArg(__pyx_t_17); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_FormatSimple(__pyx_t_14, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pyarrow/_compute.pyx":1737
 *         Number of distinct most-common values to return.
 *     {_skip_nulls_doc()}
 *     {_min_count_doc(default=0)}             # <<<<<<<<<<<<<<
 *     """
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_min_count_doc); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_0) < (0)) __PYX_ERR(0, 1737, __pyx_L1_error)
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_t_12, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_18[0] = __pyx_mstate_global->__pyx_kp_u_Options_for_the_mode_function_P;
  __pyx_t_18[1] = __pyx_t_17;
  __pyx_t_18[2] = __pyx_mstate_global->__pyx_kp_u__9;
  __pyx_t_18[3] = __pyx_t_9;
  __pyx_t_18[4] = __pyx_mstate_global->__pyx_kp_u__9;

  /* "pyarrow/_compute.pyx":1729
 * 
 * class ModeOptions(_ModeOptions):
 *     __doc__ = f"""             # <<<<<<<<<<<<<<
 *     Options for the `mode` function.
 * 
*/
  __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_18, 5, 153 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17) + 5 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_17) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9));
  if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_doc, __pyx_t_12) < (0)) __PYX_ERR(0, 1729, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1740
 *     """
 * 
 *     def __init__(self, n=1, *, skip_nulls=True, min_count=0):             # <<<<<<<<<<<<<<
 *         self._set_options(n, skip_nulls, min_count)
 * 
*/
  __pyx_t_12 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_skip_nulls, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 1740, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_min_count, ((PyObject*)__pyx_mstate_global->__pyx_int_0)) < (0)) __PYX_ERR(0, 1740, __pyx_L1_error)
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11ModeOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ModeOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[21]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_9, __pyx_t_12);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_9) < (0)) __PYX_ERR(0, 1740, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1728
 * 
 * 
 * class ModeOptions(_ModeOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for the `mode` function.
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ModeOptions_2, __pyx_t_13, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ModeOptions_2, __pyx_t_9) < (0)) __PYX_ERR(0, 1728, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1745
 * 
 * cdef class _SetLookupOptions(FunctionOptions):
 *     def _set_options(self, value_set, c_bool skip_nulls):             # <<<<<<<<<<<<<<
 *         cdef unique_ptr[CDatum] valset
 *         if isinstance(value_set, Array):
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_SetLookupOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SetLookupOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1745, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_13) < (0)) __PYX_ERR(0, 1745, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_SetLookupOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SetLookupOptions___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_SetLookupOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SetLookupOptions___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1762
 * 
 * 
 * class SetLookupOptions(_SetLookupOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `is_in` and `index_in` functions.
*/
  __pyx_t_13 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SetLookupOptions)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_SetLookupOptions, __pyx_mstate_global->__pyx_n_u_SetLookupOptions, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_is_in_and_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_2 != __pyx_t_13) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_13) < 0))) __PYX_ERR(0, 1762, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1776
 *     """
 * 
 *     def __init__(self, value_set, *, skip_nulls=False):             # <<<<<<<<<<<<<<
 *         self._set_options(value_set, skip_nulls)
 * 
*/
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_skip_nulls, ((PyObject*)Py_False)) < (0)) __PYX_ERR(0, 1776, __pyx_L1_error)
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16SetLookupOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_SetLookupOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_12, __pyx_t_13);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(0, 1776, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1762
 * 
 * 
 * class SetLookupOptions(_SetLookupOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `is_in` and `index_in` functions.
*/
  __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SetLookupOptions, __pyx_t_2, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SetLookupOptions, __pyx_t_12) < (0)) __PYX_ERR(0, 1762, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1782
 * cdef class _StrptimeOptions(FunctionOptions):
 *     _unit_map = {
 *         "s": TimeUnit_SECOND,             # <<<<<<<<<<<<<<
 *         "ms": TimeUnit_MILLI,
 *         "us": TimeUnit_MICRO,
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyLong_From_enum____arrow_3a__3a_TimeUnit_3a__3a_type( arrow::TimeUnit::SECOND); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_s, __pyx_t_4) < (0)) __PYX_ERR(0, 1782, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1783
 *     _unit_map = {
 *         "s": TimeUnit_SECOND,
 *         "ms": TimeUnit_MILLI,             # <<<<<<<<<<<<<<
 *         "us": TimeUnit_MICRO,
 *         "ns": TimeUnit_NANO,
*/
  __pyx_t_4 = __Pyx_PyLong_From_enum____arrow_3a__3a_TimeUnit_3a__3a_type( arrow::TimeUnit::MILLI); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ms, __pyx_t_4) < (0)) __PYX_ERR(0, 1782, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1784
 *         "s": TimeUnit_SECOND,
 *         "ms": TimeUnit_MILLI,
 *         "us": TimeUnit_MICRO,             # <<<<<<<<<<<<<<
 *         "ns": TimeUnit_NANO,
 *     }
*/
  __pyx_t_4 = __Pyx_PyLong_From_enum____arrow_3a__3a_TimeUnit_3a__3a_type( arrow::TimeUnit::MICRO); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_us, __pyx_t_4) < (0)) __PYX_ERR(0, 1782, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1785
 *         "ms": TimeUnit_MILLI,
 *         "us": TimeUnit_MICRO,
 *         "ns": TimeUnit_NANO,             # <<<<<<<<<<<<<<
 *     }
 * 
*/
  __pyx_t_4 = __Pyx_PyLong_From_enum____arrow_3a__3a_TimeUnit_3a__3a_type( arrow::TimeUnit::NANO); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ns, __pyx_t_4) < (0)) __PYX_ERR(0, 1782, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions, __pyx_mstate_global->__pyx_n_u_unit_map, __pyx_t_2) < (0)) __PYX_ERR(0, 1781, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1788
 *     }
 * 
 *     def _set_options(self, format, unit, error_is_null):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_StrptimeOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StrptimeOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 1788, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_StrptimeOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StrptimeOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_StrptimeOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StrptimeOptions___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1798
 * 
 * 
 * class StrptimeOptions(_StrptimeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `strptime` function.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__StrptimeOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_12 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_StrptimeOptions_2, __pyx_mstate_global->__pyx_n_u_StrptimeOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_strptime_functi); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__pyx_t_4 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_12, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 1798, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1816
 *     """
 * 
 *     def __init__(self, format, unit, error_is_null=False):             # <<<<<<<<<<<<<<
 *         self._set_options(format, unit, error_is_null)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15StrptimeOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_StrptimeOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[22]);
  if (__Pyx_SetNameInClass(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 1816, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1798
 * 
 * 
 * class StrptimeOptions(_StrptimeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `strptime` function.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_StrptimeOptions_2, __pyx_t_4, __pyx_t_12, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_StrptimeOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 1798, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1821
 * 
 * cdef class _StrftimeOptions(FunctionOptions):
 *     def _set_options(self, format, locale):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CStrftimeOptions(tobytes(format), tobytes(locale))
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_StrftimeOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StrftimeOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_4) < (0)) __PYX_ERR(0, 1821, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_StrftimeOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StrftimeOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_StrftimeOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_StrftimeOptions___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1827
 * 
 * 
 * class StrftimeOptions(_StrftimeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `strftime` function.
*/
  __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__StrftimeOptions)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_StrftimeOptions_2, __pyx_mstate_global->__pyx_n_u_StrftimeOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_strftime_functi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_9 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 1827, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1839
 *     """
 * 
 *     def __init__(self, format="%Y-%m-%dT%H:%M:%S", locale="C"):             # <<<<<<<<<<<<<<
 *         self._set_options(format, locale)
 * 
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15StrftimeOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_StrftimeOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[23]);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 1839, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1827
 * 
 * 
 * class StrftimeOptions(_StrftimeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `strftime` function.
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_StrftimeOptions_2, __pyx_t_9, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_StrftimeOptions_2, __pyx_t_4) < (0)) __PYX_ERR(0, 1827, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1844
 * 
 * cdef class _DayOfWeekOptions(FunctionOptions):
 *     def _set_options(self, count_from_zero, week_start):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CDayOfWeekOptions(count_from_zero, week_start)
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_DayOfWeekOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DayOfWeekOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_9) < (0)) __PYX_ERR(0, 1844, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_DayOfWeekOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DayOfWeekOptions___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_DayOfWeekOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DayOfWeekOptions___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1850
 * 
 * 
 * class DayOfWeekOptions(_DayOfWeekOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `day_of_week` function.
*/
  __pyx_t_9 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__DayOfWeekOptions)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_12 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_12, __pyx_mstate_global->__pyx_n_u_DayOfWeekOptions_2, __pyx_mstate_global->__pyx_n_u_DayOfWeekOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_day_of_week_fun); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_12 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(0, 1850, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1863
 *     """
 * 
 *     def __init__(self, *, count_from_zero=True, week_start=1):             # <<<<<<<<<<<<<<
 *         self._set_options(count_from_zero, week_start)
 * 
*/
  __pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_count_from_zero, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 1863, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_week_start, ((PyObject*)__pyx_mstate_global->__pyx_int_1)) < (0)) __PYX_ERR(0, 1863, __pyx_L1_error)
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16DayOfWeekOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_DayOfWeekOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_13, __pyx_t_9);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_13) < (0)) __PYX_ERR(0, 1863, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1850
 * 
 * 
 * class DayOfWeekOptions(_DayOfWeekOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `day_of_week` function.
*/
  __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DayOfWeekOptions_2, __pyx_t_12, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DayOfWeekOptions_2, __pyx_t_13) < (0)) __PYX_ERR(0, 1850, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1868
 * 
 * cdef class _WeekOptions(FunctionOptions):
 *     def _set_options(self, week_starts_monday, count_from_zero,             # <<<<<<<<<<<<<<
 *                      first_week_is_fully_in_year):
 *         self.wrapped.reset(
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_WeekOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WeekOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__WeekOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_12) < (0)) __PYX_ERR(0, 1868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_WeekOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WeekOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_WeekOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WeekOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1876
 * 
 * 
 * class WeekOptions(_WeekOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `week` function.
*/
  __pyx_t_12 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__WeekOptions)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_13 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_WeekOptions_2, __pyx_mstate_global->__pyx_n_u_WeekOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_week_function_P); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__pyx_t_2 != __pyx_t_12) {
    if (unlikely((PyDict_SetItemString(__pyx_t_13, "__orig_bases__", __pyx_t_12) < 0))) __PYX_ERR(0, 1876, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1895
 *     """
 * 
 *     def __init__(self, *, week_starts_monday=True, count_from_zero=False,             # <<<<<<<<<<<<<<
 *                  first_week_is_fully_in_year=False):
 *         self._set_options(week_starts_monday,
*/
  __pyx_t_12 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_week_starts_monday, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 1895, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_count_from_zero, ((PyObject*)Py_False)) < (0)) __PYX_ERR(0, 1895, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_first_week_is_fully_in_year, ((PyObject*)Py_False)) < (0)) __PYX_ERR(0, 1895, __pyx_L1_error)
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11WeekOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_WeekOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_9, __pyx_t_12);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_9) < (0)) __PYX_ERR(0, 1895, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1876
 * 
 * 
 * class WeekOptions(_WeekOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `week` function.
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_WeekOptions_2, __pyx_t_2, __pyx_t_13, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WeekOptions_2, __pyx_t_9) < (0)) __PYX_ERR(0, 1876, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1903
 * cdef class _AssumeTimezoneOptions(FunctionOptions):
 *     _ambiguous_map = {
 *         "raise": CAssumeTimezoneAmbiguous_AMBIGUOUS_RAISE,             # <<<<<<<<<<<<<<
 *         "earliest": CAssumeTimezoneAmbiguous_AMBIGUOUS_EARLIEST,
 *         "latest": CAssumeTimezoneAmbiguous_AMBIGUOUS_LATEST,
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1903, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Ambiguous(arrow::compute::AssumeTimezoneOptions::AMBIGUOUS_RAISE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1903, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_raise, __pyx_t_4) < (0)) __PYX_ERR(0, 1903, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1904
 *     _ambiguous_map = {
 *         "raise": CAssumeTimezoneAmbiguous_AMBIGUOUS_RAISE,
 *         "earliest": CAssumeTimezoneAmbiguous_AMBIGUOUS_EARLIEST,             # <<<<<<<<<<<<<<
 *         "latest": CAssumeTimezoneAmbiguous_AMBIGUOUS_LATEST,
 *     }
*/
  __pyx_t_4 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Ambiguous(arrow::compute::AssumeTimezoneOptions::AMBIGUOUS_EARLIEST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_earliest, __pyx_t_4) < (0)) __PYX_ERR(0, 1903, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1905
 *         "raise": CAssumeTimezoneAmbiguous_AMBIGUOUS_RAISE,
 *         "earliest": CAssumeTimezoneAmbiguous_AMBIGUOUS_EARLIEST,
 *         "latest": CAssumeTimezoneAmbiguous_AMBIGUOUS_LATEST,             # <<<<<<<<<<<<<<
 *     }
 *     _nonexistent_map = {
*/
  __pyx_t_4 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Ambiguous(arrow::compute::AssumeTimezoneOptions::AMBIGUOUS_LATEST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_latest, __pyx_t_4) < (0)) __PYX_ERR(0, 1903, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions, __pyx_mstate_global->__pyx_n_u_ambiguous_map, __pyx_t_2) < (0)) __PYX_ERR(0, 1902, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1908
 *     }
 *     _nonexistent_map = {
 *         "raise": CAssumeTimezoneNonexistent_NONEXISTENT_RAISE,             # <<<<<<<<<<<<<<
 *         "earliest": CAssumeTimezoneNonexistent_NONEXISTENT_EARLIEST,
 *         "latest": CAssumeTimezoneNonexistent_NONEXISTENT_LATEST,
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Nonexistent(arrow::compute::AssumeTimezoneOptions::NONEXISTENT_RAISE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_raise, __pyx_t_4) < (0)) __PYX_ERR(0, 1908, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1909
 *     _nonexistent_map = {
 *         "raise": CAssumeTimezoneNonexistent_NONEXISTENT_RAISE,
 *         "earliest": CAssumeTimezoneNonexistent_NONEXISTENT_EARLIEST,             # <<<<<<<<<<<<<<
 *         "latest": CAssumeTimezoneNonexistent_NONEXISTENT_LATEST,
 *     }
*/
  __pyx_t_4 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Nonexistent(arrow::compute::AssumeTimezoneOptions::NONEXISTENT_EARLIEST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_earliest, __pyx_t_4) < (0)) __PYX_ERR(0, 1908, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1910
 *         "raise": CAssumeTimezoneNonexistent_NONEXISTENT_RAISE,
 *         "earliest": CAssumeTimezoneNonexistent_NONEXISTENT_EARLIEST,
 *         "latest": CAssumeTimezoneNonexistent_NONEXISTENT_LATEST,             # <<<<<<<<<<<<<<
 *     }
 * 
*/
  __pyx_t_4 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Nonexistent(arrow::compute::AssumeTimezoneOptions::NONEXISTENT_LATEST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_latest, __pyx_t_4) < (0)) __PYX_ERR(0, 1908, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions, __pyx_mstate_global->__pyx_n_u_nonexistent_map, __pyx_t_2) < (0)) __PYX_ERR(0, 1907, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1913
 *     }
 * 
 *     def _set_options(self, timezone, ambiguous, nonexistent):             # <<<<<<<<<<<<<<
 *         if ambiguous not in self._ambiguous_map:
 *             _raise_invalid_function_option(ambiguous,
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_22_AssumeTimezoneOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AssumeTimezoneOptions__set_opti, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 1913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_22_AssumeTimezoneOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AssumeTimezoneOptions___reduce, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_22_AssumeTimezoneOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AssumeTimezoneOptions___setstat, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1927
 * 
 * 
 * class AssumeTimezoneOptions(_AssumeTimezoneOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `assume_timezone` function.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__AssumeTimezoneOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_13 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_13, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_AssumeTimezoneOptions_2, __pyx_mstate_global->__pyx_n_u_AssumeTimezoneOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_assume_timezone); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_4 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 1927, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1943
 *     """
 * 
 *     def __init__(self, timezone, *, ambiguous="raise", nonexistent="raise"):             # <<<<<<<<<<<<<<
 *         self._set_options(timezone, ambiguous, nonexistent)
 * 
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ambiguous, ((PyObject*)__pyx_mstate_global->__pyx_n_u_raise)) < (0)) __PYX_ERR(0, 1943, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nonexistent, ((PyObject*)__pyx_mstate_global->__pyx_n_u_raise)) < (0)) __PYX_ERR(0, 1943, __pyx_L1_error)
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_21AssumeTimezoneOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_AssumeTimezoneOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_12, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(0, 1943, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":1927
 * 
 * 
 * class AssumeTimezoneOptions(_AssumeTimezoneOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `assume_timezone` function.
*/
  __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_AssumeTimezoneOptions_2, __pyx_t_4, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AssumeTimezoneOptions_2, __pyx_t_12) < (0)) __PYX_ERR(0, 1927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1948
 * 
 * cdef class _NullOptions(FunctionOptions):
 *     def _set_options(self, nan_is_null):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CNullOptions(nan_is_null))
 * 
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_NullOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NullOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__NullOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_4) < (0)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_NullOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NullOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_NullOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NullOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1952
 * 
 * 
 * class NullOptions(_NullOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `is_null` function.
*/
  __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__NullOptions)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_13 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_12 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_13, __pyx_mstate_global->__pyx_n_u_NullOptions, __pyx_mstate_global->__pyx_n_u_NullOptions, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_is_null_functio); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__pyx_t_13 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_12, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 1952, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1962
 *     """
 * 
 *     def __init__(self, *, nan_is_null=False):             # <<<<<<<<<<<<<<
 *         self._set_options(nan_is_null)
 * 
*/
  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_nan_is_null, ((PyObject*)Py_False)) < (0)) __PYX_ERR(0, 1962, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11NullOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_NullOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 1962, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":1952
 * 
 * 
 * class NullOptions(_NullOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `is_null` function.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_NullOptions, __pyx_t_13, __pyx_t_12, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NullOptions, __pyx_t_2) < (0)) __PYX_ERR(0, 1952, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1967
 * 
 * cdef class _VarianceOptions(FunctionOptions):
 *     def _set_options(self, ddof, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CVarianceOptions(ddof, skip_nulls, min_count))
 * 
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_VarianceOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VarianceOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__VarianceOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_13) < (0)) __PYX_ERR(0, 1967, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_VarianceOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VarianceOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_VarianceOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VarianceOptions___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1971
 * 
 * 
 * class VarianceOptions(_VarianceOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for the `variance` and `stddev` functions.
*/
  __pyx_t_13 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__VarianceOptions)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_VarianceOptions_2, __pyx_mstate_global->__pyx_n_u_VarianceOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_9 != __pyx_t_13) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_13) < 0))) __PYX_ERR(0, 1971, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1979
 *     ddof : int, default 0
 *         Number of degrees of freedom.
 *     {_skip_nulls_doc()}             # <<<<<<<<<<<<<<
 *     {_min_count_doc(default=0)}
 *     """
*/
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_skip_nulls_doc); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1980
 *         Number of degrees of freedom.
 *     {_skip_nulls_doc()}
 *     {_min_count_doc(default=0)}             # <<<<<<<<<<<<<<
 *     """
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_min_count_doc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_17 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (PyDict_SetItem(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_0) < (0)) __PYX_ERR(0, 1980, __pyx_L1_error)
  __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_17); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_FormatSimple(__pyx_t_14, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_18[0] = __pyx_mstate_global->__pyx_kp_u_Options_for_the_variance_and_st;
  __pyx_t_18[1] = __pyx_t_13;
  __pyx_t_18[2] = __pyx_mstate_global->__pyx_kp_u__9;
  __pyx_t_18[3] = __pyx_t_17;
  __pyx_t_18[4] = __pyx_mstate_global->__pyx_kp_u__9;

  /* "pyarrow/_compute.pyx":1972
 * 
 * class VarianceOptions(_VarianceOptions):
 *     __doc__ = f"""             # <<<<<<<<<<<<<<
 *     Options for the `variance` and `stddev` functions.
 * 
*/
  __pyx_t_14 = __Pyx_PyUnicode_Join(__pyx_t_18, 5, 155 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 5 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_17));
  if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_doc, __pyx_t_14) < (0)) __PYX_ERR(0, 1972, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pyarrow/_compute.pyx":1983
 *     """
 * 
 *     def __init__(self, *, ddof=0, skip_nulls=True, min_count=0):             # <<<<<<<<<<<<<<
 *         self._set_options(ddof, skip_nulls, min_count)
 * 
*/
  __pyx_t_14 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (PyDict_SetItem(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_ddof, ((PyObject*)__pyx_mstate_global->__pyx_int_0)) < (0)) __PYX_ERR(0, 1983, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_skip_nulls, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 1983, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_min_count, ((PyObject*)__pyx_mstate_global->__pyx_int_0)) < (0)) __PYX_ERR(0, 1983, __pyx_L1_error)
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15VarianceOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_VarianceOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_17, __pyx_t_14);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_17) < (0)) __PYX_ERR(0, 1983, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":1971
 * 
 * 
 * class VarianceOptions(_VarianceOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for the `variance` and `stddev` functions.
*/
  __pyx_t_17 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_VarianceOptions_2, __pyx_t_9, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VarianceOptions_2, __pyx_t_17) < (0)) __PYX_ERR(0, 1971, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1988
 * 
 * cdef class _SkewOptions(FunctionOptions):
 *     def _set_options(self, skip_nulls, biased, min_count):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSkewOptions(skip_nulls, biased, min_count))
 * 
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_SkewOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SkewOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SkewOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_9) < (0)) __PYX_ERR(0, 1988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_SkewOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SkewOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_SkewOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SkewOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1992
 * 
 * 
 * class SkewOptions(_SkewOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for the `skew` and `kurtosis` functions.
*/
  __pyx_t_9 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SkewOptions)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_12 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_17 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_12, __pyx_mstate_global->__pyx_n_u_SkewOptions_2, __pyx_mstate_global->__pyx_n_u_SkewOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, (PyObject *) NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (__pyx_t_12 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_17, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(0, 1992, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":1998
 *     Parameters
 *     ----------
 *     {_skip_nulls_doc()}             # <<<<<<<<<<<<<<
 *     biased : bool, default True
 *         Whether the calculated value is biased.
*/
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_skip_nulls_doc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_14 = __Pyx_PyObject_CallNoArg(__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_t_14, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pyarrow/_compute.pyx":2002
 *         Whether the calculated value is biased.
 *         If False, the value computed includes a correction factor to reduce bias.
 *     {_min_count_doc(default=0)}             # <<<<<<<<<<<<<<
 *     """
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_min_count_doc); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_0) < (0)) __PYX_ERR(0, 2002, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_18[0] = __pyx_mstate_global->__pyx_kp_u_Options_for_the_skew_and_kurtos;
  __pyx_t_18[1] = __pyx_t_9;
  __pyx_t_18[2] = __pyx_mstate_global->__pyx_kp_u_biased_bool_default_True_Whethe;
  __pyx_t_18[3] = __pyx_t_13;
  __pyx_t_18[4] = __pyx_mstate_global->__pyx_kp_u__9;

  /* "pyarrow/_compute.pyx":1993
 * 
 * class SkewOptions(_SkewOptions):
 *     __doc__ = f"""             # <<<<<<<<<<<<<<
 *     Options for the `skew` and `kurtosis` functions.
 * 
*/
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_18, 5, 89 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 167 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 5, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_doc, __pyx_t_4) < (0)) __PYX_ERR(0, 1993, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2005
 *     """
 * 
 *     def __init__(self, *, skip_nulls=True, biased=True, min_count=0):             # <<<<<<<<<<<<<<
 *         self._set_options(skip_nulls, biased, min_count)
 * 
*/
  __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_skip_nulls, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 2005, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_biased, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 2005, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_min_count, ((PyObject*)__pyx_mstate_global->__pyx_int_0)) < (0)) __PYX_ERR(0, 2005, __pyx_L1_error)
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11SkewOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_SkewOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2005, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_13, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_13) < (0)) __PYX_ERR(0, 2005, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":1992
 * 
 * 
 * class SkewOptions(_SkewOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for the `skew` and `kurtosis` functions.
*/
  __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SkewOptions_2, __pyx_t_12, __pyx_t_17, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SkewOptions_2, __pyx_t_13) < (0)) __PYX_ERR(0, 1992, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2010
 * 
 * cdef class _SplitOptions(FunctionOptions):
 *     def _set_options(self, max_splits, reverse):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSplitOptions(max_splits, reverse))
 * 
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_SplitOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SplitOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2010, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SplitOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_12) < (0)) __PYX_ERR(0, 2010, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_SplitOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SplitOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13_SplitOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SplitOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2014
 * 
 * 
 * class SplitOptions(_SplitOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for splitting on whitespace.
*/
  __pyx_t_12 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SplitOptions)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_17 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_13 = __Pyx_Py3MetaclassPrepare(__pyx_t_17, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_SplitOptions_2, __pyx_mstate_global->__pyx_n_u_SplitOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_splitting_on_whites); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__pyx_t_2 != __pyx_t_12) {
    if (unlikely((PyDict_SetItemString(__pyx_t_13, "__orig_bases__", __pyx_t_12) < 0))) __PYX_ERR(0, 2014, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2027
 *     """
 * 
 *     def __init__(self, *, max_splits=None, reverse=False):             # <<<<<<<<<<<<<<
 *         if max_splits is None:
 *             max_splits = -1
*/
  __pyx_t_12 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_max_splits, Py_None) < (0)) __PYX_ERR(0, 2027, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_reverse, ((PyObject*)Py_False)) < (0)) __PYX_ERR(0, 2027, __pyx_L1_error)
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12SplitOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_SplitOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_4, __pyx_t_12);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 2027, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2014
 * 
 * 
 * class SplitOptions(_SplitOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for splitting on whitespace.
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_SplitOptions_2, __pyx_t_2, __pyx_t_13, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SplitOptions_2, __pyx_t_4) < (0)) __PYX_ERR(0, 2014, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2034
 * 
 * cdef class _SplitPatternOptions(FunctionOptions):
 *     def _set_options(self, pattern, max_splits, reverse):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CSplitPatternOptions(tobytes(pattern), max_splits, reverse)
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_SplitPatternOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SplitPatternOptions__set_option, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 2034, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_SplitPatternOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SplitPatternOptions___reduce_cy, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_SplitPatternOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SplitPatternOptions___setstate, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2040
 * 
 * 
 * class SplitPatternOptions(_SplitPatternOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for splitting on a string pattern.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SplitPatternOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_17 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_13 = __Pyx_CalculateMetaclass(NULL, __pyx_t_17); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_13, __pyx_t_17, __pyx_mstate_global->__pyx_n_u_SplitPatternOptions_2, __pyx_mstate_global->__pyx_n_u_SplitPatternOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_splitting_on_a_stri); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_17 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 2040, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2055
 *     """
 * 
 *     def __init__(self, pattern, *, max_splits=None, reverse=False):             # <<<<<<<<<<<<<<
 *         if max_splits is None:
 *             max_splits = -1
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_max_splits, Py_None) < (0)) __PYX_ERR(0, 2055, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_reverse, ((PyObject*)Py_False)) < (0)) __PYX_ERR(0, 2055, __pyx_L1_error)
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19SplitPatternOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_SplitPatternOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_12, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(0, 2055, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2040
 * 
 * 
 * class SplitPatternOptions(_SplitPatternOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for splitting on a string pattern.
*/
  __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_SplitPatternOptions_2, __pyx_t_17, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SplitPatternOptions_2, __pyx_t_12) < (0)) __PYX_ERR(0, 2040, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2078
 * 
 * cdef class _PartitionNthOptions(FunctionOptions):
 *     def _set_options(self, pivot, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CPartitionNthOptions(
 *             pivot, unwrap_null_placement(null_placement)))
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_PartitionNthOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PartitionNthOptions__set_option, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2078, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_17) < (0)) __PYX_ERR(0, 2078, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_PartitionNthOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PartitionNthOptions___reduce_cy, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_17) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_PartitionNthOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PartitionNthOptions___setstate, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_17) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2083
 * 
 * 
 * class PartitionNthOptions(_PartitionNthOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `partition_nth_indices` function.
*/
  __pyx_t_17 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PartitionNthOptions)); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_13 = __Pyx_PEP560_update_bases(__pyx_t_17); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_13, __pyx_mstate_global->__pyx_n_u_PartitionNthOptions_2, __pyx_mstate_global->__pyx_n_u_PartitionNthOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_partition_nth_i); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__pyx_t_13 != __pyx_t_17) {
    if (unlikely((PyDict_SetItemString(__pyx_t_12, "__orig_bases__", __pyx_t_17) < 0))) __PYX_ERR(0, 2083, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2096
 *     """
 * 
 *     def __init__(self, pivot, *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(pivot, null_placement)
 * 
*/
  __pyx_t_17 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (PyDict_SetItem(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_null_placement_2, ((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)) < (0)) __PYX_ERR(0, 2096, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19PartitionNthOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_PartitionNthOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_17);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 2096, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2083
 * 
 * 
 * class PartitionNthOptions(_PartitionNthOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `partition_nth_indices` function.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PartitionNthOptions_2, __pyx_t_13, __pyx_t_12, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PartitionNthOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 2083, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2101
 * 
 * cdef class _WinsorizeOptions(FunctionOptions):
 *     def _set_options(self, lower_limit, upper_limit):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CWinsorizeOptions(lower_limit, upper_limit))
 * 
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_WinsorizeOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WinsorizeOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_13) < (0)) __PYX_ERR(0, 2101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_WinsorizeOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WinsorizeOptions___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_WinsorizeOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WinsorizeOptions___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2105
 * 
 * 
 * class WinsorizeOptions(_WinsorizeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `winsorize` function.
*/
  __pyx_t_13 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__WinsorizeOptions)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_WinsorizeOptions_2, __pyx_mstate_global->__pyx_n_u_WinsorizeOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_winsorize_funct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_4 != __pyx_t_13) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_13) < 0))) __PYX_ERR(0, 2105, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2117
 *     """
 * 
 *     def __init__(self, lower_limit, upper_limit):             # <<<<<<<<<<<<<<
 *         self._set_options(lower_limit, upper_limit)
 * 
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16WinsorizeOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_WinsorizeOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_13) < (0)) __PYX_ERR(0, 2117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2105
 * 
 * 
 * class WinsorizeOptions(_WinsorizeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `winsorize` function.
*/
  __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_WinsorizeOptions_2, __pyx_t_4, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WinsorizeOptions_2, __pyx_t_13) < (0)) __PYX_ERR(0, 2105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2122
 * 
 * cdef class _CumulativeOptions(FunctionOptions):
 *     def _set_options(self, start, skip_nulls):             # <<<<<<<<<<<<<<
 *         if start is None:
 *             self.wrapped.reset(new CCumulativeOptions(skip_nulls))
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18_CumulativeOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CumulativeOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_4) < (0)) __PYX_ERR(0, 2122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18_CumulativeOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CumulativeOptions___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18_CumulativeOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CumulativeOptions___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2138
 * 
 * 
 * class CumulativeOptions(_CumulativeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `cumulative_*` functions.
*/
  __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_12, __pyx_mstate_global->__pyx_n_u_CumulativeOptions, __pyx_mstate_global->__pyx_n_u_CumulativeOptions, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_cumulative__functio); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__pyx_t_12 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_13, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 2138, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2158
 *     """
 * 
 *     def __init__(self, start=None, *, skip_nulls=False):             # <<<<<<<<<<<<<<
 *         self._set_options(start, skip_nulls)
 * 
*/
  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_skip_nulls, ((PyObject*)Py_False)) < (0)) __PYX_ERR(0, 2158, __pyx_L1_error)
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17CumulativeOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_CumulativeOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_17, __pyx_mstate_global->__pyx_tuple[5]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_17, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_17) < (0)) __PYX_ERR(0, 2158, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2138
 * 
 * 
 * class CumulativeOptions(_CumulativeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `cumulative_*` functions.
*/
  __pyx_t_17 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_CumulativeOptions, __pyx_t_12, __pyx_t_13, NULL, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CumulativeOptions, __pyx_t_17) < (0)) __PYX_ERR(0, 2138, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2162
 * 
 * 
 * class CumulativeSumOptions(_CumulativeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `cumulative_sum` function.
*/
  __pyx_t_12 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__CumulativeOptions)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_17 = __Pyx_Py3MetaclassPrepare(__pyx_t_13, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_CumulativeSumOptions, __pyx_mstate_global->__pyx_n_u_CumulativeSumOptions, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_cumulative_sum_func); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (__pyx_t_2 != __pyx_t_12) {
    if (unlikely((PyDict_SetItemString(__pyx_t_17, "__orig_bases__", __pyx_t_12) < 0))) __PYX_ERR(0, 2162, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2174
 *     """
 * 
 *     def __init__(self, start=None, *, skip_nulls=False):             # <<<<<<<<<<<<<<
 *         warnings.warn(
 *             _DEPR_MSG.format("CumulativeSumOptions", "14.0", "CumulativeOptions"),
*/
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_skip_nulls, ((PyObject*)Py_False)) < (0)) __PYX_ERR(0, 2174, __pyx_L1_error)
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20CumulativeSumOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_CumulativeSumOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[5]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_4, __pyx_t_12);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 2174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2162
 * 
 * 
 * class CumulativeSumOptions(_CumulativeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `cumulative_sum` function.
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_CumulativeSumOptions, __pyx_t_2, __pyx_t_17, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CumulativeSumOptions, __pyx_t_4) < (0)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2184
 * 
 * cdef class _PairwiseOptions(FunctionOptions):
 *     def _set_options(self, period):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CPairwiseOptions(period))
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_PairwiseOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PairwiseOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 2184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_PairwiseOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PairwiseOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[213])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_PairwiseOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PairwiseOptions___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[214])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2188
 * 
 * 
 * class PairwiseOptions(_PairwiseOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `pairwise` functions.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PairwiseOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_17 = __Pyx_CalculateMetaclass(NULL, __pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_17, __pyx_t_13, __pyx_mstate_global->__pyx_n_u_PairwiseOptions_2, __pyx_mstate_global->__pyx_n_u_PairwiseOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_pairwise_functions); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_13 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 2188, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2198
 *     """
 * 
 *     def __init__(self, period=1):             # <<<<<<<<<<<<<<
 *         self._set_options(period)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15PairwiseOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_PairwiseOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[215])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[21]);
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 2198, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2188
 * 
 * 
 * class PairwiseOptions(_PairwiseOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `pairwise` functions.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_PairwiseOptions_2, __pyx_t_13, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PairwiseOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 2188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2203
 * 
 * cdef class _ListFlattenOptions(FunctionOptions):
 *     def _set_options(self, recursive):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CListFlattenOptions(recursive))
 * 
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19_ListFlattenOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ListFlattenOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[216])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2203, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_13) < (0)) __PYX_ERR(0, 2203, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19_ListFlattenOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ListFlattenOptions___reduce_cyt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[217])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19_ListFlattenOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ListFlattenOptions___setstate_c, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[218])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2207
 * 
 * 
 * class ListFlattenOptions(_ListFlattenOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `list_flatten` function
*/
  __pyx_t_13 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ListFlattenOptions)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_17 = __Pyx_PEP560_update_bases(__pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_17); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_17, __pyx_mstate_global->__pyx_n_u_ListFlattenOptions_2, __pyx_mstate_global->__pyx_n_u_ListFlattenOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_list_flatten_functi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_17 != __pyx_t_13) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_13) < 0))) __PYX_ERR(0, 2207, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2218
 *     """
 * 
 *     def __init__(self, recursive=False):             # <<<<<<<<<<<<<<
 *         self._set_options(recursive)
 * 
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18ListFlattenOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ListFlattenOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[219])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_mstate_global->__pyx_tuple[22]);
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_13) < (0)) __PYX_ERR(0, 2218, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2207
 * 
 * 
 * class ListFlattenOptions(_ListFlattenOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for `list_flatten` function
*/
  __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ListFlattenOptions_2, __pyx_t_17, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ListFlattenOptions_2, __pyx_t_13) < (0)) __PYX_ERR(0, 2207, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2223
 * 
 * cdef class _ArraySortOptions(FunctionOptions):
 *     def _set_options(self, order, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CArraySortOptions(
 *             unwrap_sort_order(order), unwrap_null_placement(null_placement)))
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_ArraySortOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ArraySortOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[220])); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_17) < (0)) __PYX_ERR(0, 2223, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_ArraySortOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ArraySortOptions___reduce_cytho, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[221])); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_17) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17_ArraySortOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ArraySortOptions___setstate_cyt, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[222])); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_17) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2228
 * 
 * 
 * class ArraySortOptions(_ArraySortOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `array_sort_indices` function.
*/
  __pyx_t_17 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__ArraySortOptions)); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_17); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_ArraySortOptions_2, __pyx_mstate_global->__pyx_n_u_ArraySortOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_array_sort_indi); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__pyx_t_4 != __pyx_t_17) {
    if (unlikely((PyDict_SetItemString(__pyx_t_13, "__orig_bases__", __pyx_t_17) < 0))) __PYX_ERR(0, 2228, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2242
 *     """
 * 
 *     def __init__(self, order="ascending", *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(order, null_placement)
 * 
*/
  __pyx_t_17 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (PyDict_SetItem(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_null_placement_2, ((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)) < (0)) __PYX_ERR(0, 2242, __pyx_L1_error)
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16ArraySortOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_ArraySortOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[223])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[24]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_12, __pyx_t_17);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(0, 2242, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2228
 * 
 * 
 * class ArraySortOptions(_ArraySortOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `array_sort_indices` function.
*/
  __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ArraySortOptions_2, __pyx_t_4, __pyx_t_13, NULL, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ArraySortOptions_2, __pyx_t_12) < (0)) __PYX_ERR(0, 2228, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2247
 * 
 * cdef class _SortOptions(FunctionOptions):
 *     def _set_options(self, sort_keys, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSortOptions(
 *             unwrap_sort_keys(sort_keys, allow_str=False),
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_SortOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SortOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[224])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SortOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_4) < (0)) __PYX_ERR(0, 2247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_SortOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SortOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[225])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_SortOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SortOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[226])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2253
 * 
 * 
 * class SortOptions(_SortOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `sort_indices` function.
*/
  __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SortOptions)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_12 = __Pyx_Py3MetaclassPrepare(__pyx_t_13, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_SortOptions_2, __pyx_mstate_global->__pyx_n_u_SortOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_sort_indices_fu); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (__pyx_t_2 != __pyx_t_4) {
    if (unlikely((PyDict_SetItemString(__pyx_t_12, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 2253, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2270
 *     """
 * 
 *     def __init__(self, sort_keys=(), *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(sort_keys, null_placement)
 * 
*/
  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_null_placement_2, ((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)) < (0)) __PYX_ERR(0, 2270, __pyx_L1_error)
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11SortOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_SortOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[227])); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_17, __pyx_mstate_global->__pyx_tuple[19]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_17, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_17) < (0)) __PYX_ERR(0, 2270, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2253
 * 
 * 
 * class SortOptions(_SortOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `sort_indices` function.
*/
  __pyx_t_17 = __Pyx_Py3ClassCreate(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_SortOptions_2, __pyx_t_2, __pyx_t_12, NULL, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SortOptions_2, __pyx_t_17) < (0)) __PYX_ERR(0, 2253, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2275
 * 
 * cdef class _SelectKOptions(FunctionOptions):
 *     def _set_options(self, k, sort_keys):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(new CSelectKOptions(k, unwrap_sort_keys(sort_keys, allow_str=False)))
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15_SelectKOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SelectKOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[228])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SelectKOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 2275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15_SelectKOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SelectKOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[229])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15_SelectKOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SelectKOptions___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[230])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2279
 * 
 * 
 * class SelectKOptions(_SelectKOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for top/bottom k-selection.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__SelectKOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_12 = __Pyx_CalculateMetaclass(NULL, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_17 = __Pyx_Py3MetaclassPrepare(__pyx_t_12, __pyx_t_13, __pyx_mstate_global->__pyx_n_u_SelectKOptions_2, __pyx_mstate_global->__pyx_n_u_SelectKOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_top_bottom_k_select); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (__pyx_t_13 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_17, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 2279, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2296
 *     """
 * 
 *     def __init__(self, k, sort_keys):             # <<<<<<<<<<<<<<
 *         self._set_options(k, sort_keys)
 * 
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_14SelectKOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_SelectKOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[231])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 2296, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2279
 * 
 * 
 * class SelectKOptions(_SelectKOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for top/bottom k-selection.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_SelectKOptions_2, __pyx_t_13, __pyx_t_17, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2279, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SelectKOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 2279, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2302
 * cdef class _QuantileOptions(FunctionOptions):
 *     _interp_map = {
 *         "linear": CQuantileInterp_LINEAR,             # <<<<<<<<<<<<<<
 *         "lower": CQuantileInterp_LOWER,
 *         "higher": CQuantileInterp_HIGHER,
*/
  __pyx_t_13 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_12 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_QuantileOptions_3a__3a_Interpolation(arrow::compute::QuantileOptions::LINEAR); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_linear, __pyx_t_12) < (0)) __PYX_ERR(0, 2302, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2303
 *     _interp_map = {
 *         "linear": CQuantileInterp_LINEAR,
 *         "lower": CQuantileInterp_LOWER,             # <<<<<<<<<<<<<<
 *         "higher": CQuantileInterp_HIGHER,
 *         "nearest": CQuantileInterp_NEAREST,
*/
  __pyx_t_12 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_QuantileOptions_3a__3a_Interpolation(arrow::compute::QuantileOptions::LOWER); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_lower, __pyx_t_12) < (0)) __PYX_ERR(0, 2302, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2304
 *         "linear": CQuantileInterp_LINEAR,
 *         "lower": CQuantileInterp_LOWER,
 *         "higher": CQuantileInterp_HIGHER,             # <<<<<<<<<<<<<<
 *         "nearest": CQuantileInterp_NEAREST,
 *         "midpoint": CQuantileInterp_MIDPOINT,
*/
  __pyx_t_12 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_QuantileOptions_3a__3a_Interpolation(arrow::compute::QuantileOptions::HIGHER); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_higher, __pyx_t_12) < (0)) __PYX_ERR(0, 2302, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2305
 *         "lower": CQuantileInterp_LOWER,
 *         "higher": CQuantileInterp_HIGHER,
 *         "nearest": CQuantileInterp_NEAREST,             # <<<<<<<<<<<<<<
 *         "midpoint": CQuantileInterp_MIDPOINT,
 *     }
*/
  __pyx_t_12 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_QuantileOptions_3a__3a_Interpolation(arrow::compute::QuantileOptions::NEAREST); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nearest, __pyx_t_12) < (0)) __PYX_ERR(0, 2302, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2306
 *         "higher": CQuantileInterp_HIGHER,
 *         "nearest": CQuantileInterp_NEAREST,
 *         "midpoint": CQuantileInterp_MIDPOINT,             # <<<<<<<<<<<<<<
 *     }
 * 
*/
  __pyx_t_12 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_QuantileOptions_3a__3a_Interpolation(arrow::compute::QuantileOptions::MIDPOINT); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_midpoint, __pyx_t_12) < (0)) __PYX_ERR(0, 2302, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__QuantileOptions, __pyx_mstate_global->__pyx_n_u_interp_map, __pyx_t_13) < (0)) __PYX_ERR(0, 2301, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2309
 *     }
 * 
 *     def _set_options(self, quantiles, interp, skip_nulls, min_count):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_QuantileOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_QuantileOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[232])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__QuantileOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_13) < (0)) __PYX_ERR(0, 2309, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_QuantileOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_QuantileOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[233])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_16_QuantileOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_QuantileOptions___setstate_cyth, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[234])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2319
 * 
 * 
 * class QuantileOptions(_QuantileOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for the `quantile` function.
*/
  __pyx_t_13 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__QuantileOptions)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_12 = __Pyx_PEP560_update_bases(__pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_17 = __Pyx_CalculateMetaclass(NULL, __pyx_t_12); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_17, __pyx_t_12, __pyx_mstate_global->__pyx_n_u_QuantileOptions_2, __pyx_mstate_global->__pyx_n_u_QuantileOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_12 != __pyx_t_13) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_13) < 0))) __PYX_ERR(0, 2319, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2337
 *         - "nearest": select the data point that is closest to the quantile
 *         - "midpoint": compute the (unweighted) mean of the two data points
 *     {_skip_nulls_doc()}             # <<<<<<<<<<<<<<
 *     {_min_count_doc(default=0)}
 *     """
*/
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_skip_nulls_doc); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2338
 *         - "midpoint": compute the (unweighted) mean of the two data points
 *     {_skip_nulls_doc()}
 *     {_min_count_doc(default=0)}             # <<<<<<<<<<<<<<
 *     """
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_min_count_doc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_0) < (0)) __PYX_ERR(0, 2338, __pyx_L1_error)
  __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_t_14, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_18[0] = __pyx_mstate_global->__pyx_kp_u_Options_for_the_quantile_functi;
  __pyx_t_18[1] = __pyx_t_13;
  __pyx_t_18[2] = __pyx_mstate_global->__pyx_kp_u__9;
  __pyx_t_18[3] = __pyx_t_9;
  __pyx_t_18[4] = __pyx_mstate_global->__pyx_kp_u__9;

  /* "pyarrow/_compute.pyx":2320
 * 
 * class QuantileOptions(_QuantileOptions):
 *     __doc__ = f"""             # <<<<<<<<<<<<<<
 *     Options for the `quantile` function.
 * 
*/
  __pyx_t_14 = __Pyx_PyUnicode_Join(__pyx_t_18, 5, 698 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 5 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9));
  if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_doc, __pyx_t_14) < (0)) __PYX_ERR(0, 2320, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pyarrow/_compute.pyx":2341
 *     """
 * 
 *     def __init__(self, q=0.5, *, interpolation="linear", skip_nulls=True,             # <<<<<<<<<<<<<<
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):
*/
  __pyx_t_14 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (PyDict_SetItem(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_interpolation, ((PyObject*)__pyx_mstate_global->__pyx_n_u_linear)) < (0)) __PYX_ERR(0, 2341, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_skip_nulls, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 2341, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_min_count, ((PyObject*)__pyx_mstate_global->__pyx_int_0)) < (0)) __PYX_ERR(0, 2341, __pyx_L1_error)
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15QuantileOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_QuantileOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[235])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[25]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_9, __pyx_t_14);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_9) < (0)) __PYX_ERR(0, 2341, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":2319
 * 
 * 
 * class QuantileOptions(_QuantileOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for the `quantile` function.
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_QuantileOptions_2, __pyx_t_12, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_QuantileOptions_2, __pyx_t_9) < (0)) __PYX_ERR(0, 2319, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2349
 * 
 * cdef class _TDigestOptions(FunctionOptions):
 *     def _set_options(self, quantiles, delta, buffer_size, skip_nulls,             # <<<<<<<<<<<<<<
 *                      min_count):
 *         self.wrapped.reset(
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15_TDigestOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TDigestOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[236])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__TDigestOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_12) < (0)) __PYX_ERR(0, 2349, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15_TDigestOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TDigestOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[237])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_15_TDigestOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TDigestOptions___setstate_cytho, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[238])); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_12) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2357
 * 
 * 
 * class TDigestOptions(_TDigestOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for the `tdigest` function.
*/
  __pyx_t_12 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__TDigestOptions)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_17 = __Pyx_PEP560_update_bases(__pyx_t_12); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_17); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_17, __pyx_mstate_global->__pyx_n_u_TDigestOptions_2, __pyx_mstate_global->__pyx_n_u_TDigestOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, (PyObject *) NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_17 != __pyx_t_12) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_12) < 0))) __PYX_ERR(0, 2357, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

  /* "pyarrow/_compute.pyx":2370
 *     buffer_size : int, default 500
 *         Buffer size for the T-digest algorithm.
 *     {_skip_nulls_doc()}             # <<<<<<<<<<<<<<
 *     {_min_count_doc(default=0)}
 *     """
*/
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_skip_nulls_doc); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_14 = __Pyx_PyObject_CallNoArg(__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_t_14, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pyarrow/_compute.pyx":2371
 *         Buffer size for the T-digest algorithm.
 *     {_skip_nulls_doc()}
 *     {_min_count_doc(default=0)}             # <<<<<<<<<<<<<<
 *     """
 * 
*/
  __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_min_count_doc); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_default, __pyx_mstate_global->__pyx_int_0) < (0)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_FormatSimple(__pyx_t_4, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_18[0] = __pyx_mstate_global->__pyx_kp_u_Options_for_the_tdigest_functio;
  __pyx_t_18[1] = __pyx_t_12;
  __pyx_t_18[2] = __pyx_mstate_global->__pyx_kp_u__9;
  __pyx_t_18[3] = __pyx_t_13;
  __pyx_t_18[4] = __pyx_mstate_global->__pyx_kp_u__9;

  /* "pyarrow/_compute.pyx":2358
 * 
 * class TDigestOptions(_TDigestOptions):
 *     __doc__ = f"""             # <<<<<<<<<<<<<<
 *     Options for the `tdigest` function.
 * 
*/
  __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_18, 5, 394 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12) + 5 * 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_12) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13));
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_doc, __pyx_t_4) < (0)) __PYX_ERR(0, 2358, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2374
 *     """
 * 
 *     def __init__(self, q=0.5, *, delta=100, buffer_size=500, skip_nulls=True,             # <<<<<<<<<<<<<<
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):
*/
  __pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_delta, ((PyObject*)__pyx_mstate_global->__pyx_int_100)) < (0)) __PYX_ERR(0, 2374, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_buffer_size, ((PyObject*)__pyx_mstate_global->__pyx_int_500)) < (0)) __PYX_ERR(0, 2374, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_skip_nulls, ((PyObject*)Py_True)) < (0)) __PYX_ERR(0, 2374, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_min_count, ((PyObject*)__pyx_mstate_global->__pyx_int_0)) < (0)) __PYX_ERR(0, 2374, __pyx_L1_error)
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_14TDigestOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_TDigestOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[239])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_mstate_global->__pyx_tuple[25]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_13, __pyx_t_4);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_13) < (0)) __PYX_ERR(0, 2374, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2357
 * 
 * 
 * class TDigestOptions(_TDigestOptions):             # <<<<<<<<<<<<<<
 *     __doc__ = f"""
 *     Options for the `tdigest` function.
*/
  __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_TDigestOptions_2, __pyx_t_17, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TDigestOptions_2, __pyx_t_13) < (0)) __PYX_ERR(0, 2357, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2383
 * cdef class _Utf8NormalizeOptions(FunctionOptions):
 *     _form_map = {
 *         "NFC": CUtf8NormalizeForm_NFC,             # <<<<<<<<<<<<<<
 *         "NFKC": CUtf8NormalizeForm_NFKC,
 *         "NFD": CUtf8NormalizeForm_NFD,
*/
  __pyx_t_17 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_2 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_Utf8NormalizeOptions_3a__3a_Form(arrow::compute::Utf8NormalizeOptions::NFC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_NFC, __pyx_t_2) < (0)) __PYX_ERR(0, 2383, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2384
 *     _form_map = {
 *         "NFC": CUtf8NormalizeForm_NFC,
 *         "NFKC": CUtf8NormalizeForm_NFKC,             # <<<<<<<<<<<<<<
 *         "NFD": CUtf8NormalizeForm_NFD,
 *         "NFKD": CUtf8NormalizeForm_NFKD,
*/
  __pyx_t_2 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_Utf8NormalizeOptions_3a__3a_Form(arrow::compute::Utf8NormalizeOptions::NFKC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_NFKC, __pyx_t_2) < (0)) __PYX_ERR(0, 2383, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2385
 *         "NFC": CUtf8NormalizeForm_NFC,
 *         "NFKC": CUtf8NormalizeForm_NFKC,
 *         "NFD": CUtf8NormalizeForm_NFD,             # <<<<<<<<<<<<<<
 *         "NFKD": CUtf8NormalizeForm_NFKD,
 *     }
*/
  __pyx_t_2 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_Utf8NormalizeOptions_3a__3a_Form(arrow::compute::Utf8NormalizeOptions::NFD); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_NFD, __pyx_t_2) < (0)) __PYX_ERR(0, 2383, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2386
 *         "NFKC": CUtf8NormalizeForm_NFKC,
 *         "NFD": CUtf8NormalizeForm_NFD,
 *         "NFKD": CUtf8NormalizeForm_NFKD,             # <<<<<<<<<<<<<<
 *     }
 * 
*/
  __pyx_t_2 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_Utf8NormalizeOptions_3a__3a_Form(arrow::compute::Utf8NormalizeOptions::NFKD); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_NFKD, __pyx_t_2) < (0)) __PYX_ERR(0, 2383, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions, __pyx_mstate_global->__pyx_n_u_form_map, __pyx_t_17) < (0)) __PYX_ERR(0, 2382, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2389
 *     }
 * 
 *     def _set_options(self, form):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_21_Utf8NormalizeOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Utf8NormalizeOptions__set_optio, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[240])); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_17) < (0)) __PYX_ERR(0, 2389, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_21_Utf8NormalizeOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Utf8NormalizeOptions___reduce_c, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[241])); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_17) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_21_Utf8NormalizeOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Utf8NormalizeOptions___setstate, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[242])); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_17) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2399
 * 
 * 
 * class Utf8NormalizeOptions(_Utf8NormalizeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `utf8_normalize` function.
*/
  __pyx_t_17 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__Utf8NormalizeOptions)); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_t_17); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_13 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_Utf8NormalizeOptions_2, __pyx_mstate_global->__pyx_n_u_Utf8NormalizeOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_utf8_normalize); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__pyx_t_2 != __pyx_t_17) {
    if (unlikely((PyDict_SetItemString(__pyx_t_13, "__orig_bases__", __pyx_t_17) < 0))) __PYX_ERR(0, 2399, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2410
 *     """
 * 
 *     def __init__(self, form):             # <<<<<<<<<<<<<<
 *         self._set_options(form)
 * 
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20Utf8NormalizeOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_Utf8NormalizeOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[243])); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (__Pyx_SetNameInClass(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_17) < (0)) __PYX_ERR(0, 2410, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2399
 * 
 * 
 * class Utf8NormalizeOptions(_Utf8NormalizeOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `utf8_normalize` function.
*/
  __pyx_t_17 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Utf8NormalizeOptions_2, __pyx_t_2, __pyx_t_13, NULL, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Utf8NormalizeOptions_2, __pyx_t_17) < (0)) __PYX_ERR(0, 2399, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2415
 * 
 * cdef class _RandomOptions(FunctionOptions):
 *     def _set_options(self, initializer):             # <<<<<<<<<<<<<<
 *         if initializer == 'system':
 *             self.wrapped.reset(new CRandomOptions(
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_14_RandomOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RandomOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[244])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RandomOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_2) < (0)) __PYX_ERR(0, 2415, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_14_RandomOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RandomOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[245])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_14_RandomOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RandomOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[246])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_2) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2435
 * 
 * 
 * class RandomOptions(_RandomOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for random generation.
*/
  __pyx_t_2 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RandomOptions)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_13 = __Pyx_CalculateMetaclass(NULL, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_17 = __Pyx_Py3MetaclassPrepare(__pyx_t_13, __pyx_t_9, __pyx_mstate_global->__pyx_n_u_RandomOptions_2, __pyx_mstate_global->__pyx_n_u_RandomOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_random_generation_P); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (__pyx_t_9 != __pyx_t_2) {
    if (unlikely((PyDict_SetItemString(__pyx_t_17, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 2435, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2449
 *     """
 * 
 *     def __init__(self, *, initializer='system'):             # <<<<<<<<<<<<<<
 *         self._set_options(initializer)
 * 
*/
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_initializer, ((PyObject*)__pyx_mstate_global->__pyx_n_u_system)) < (0)) __PYX_ERR(0, 2449, __pyx_L1_error)
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_13RandomOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_RandomOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[247])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_4, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_4) < (0)) __PYX_ERR(0, 2449, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2435
 * 
 * 
 * class RandomOptions(_RandomOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for random generation.
*/
  __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_RandomOptions_2, __pyx_t_9, __pyx_t_17, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2435, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RandomOptions_2, __pyx_t_4) < (0)) __PYX_ERR(0, 2435, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":2456
 * 
 *     _tiebreaker_map = {
 *         "min": CRankOptionsTiebreaker_Min,             # <<<<<<<<<<<<<<
 *         "max": CRankOptionsTiebreaker_Max,
 *         "first": CRankOptionsTiebreaker_First,
*/
  __pyx_t_9 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_13 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_RankOptions_3a__3a_Tiebreaker(arrow::compute::RankOptions::Min); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2456, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_min, __pyx_t_13) < (0)) __PYX_ERR(0, 2456, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2457
 *     _tiebreaker_map = {
 *         "min": CRankOptionsTiebreaker_Min,
 *         "max": CRankOptionsTiebreaker_Max,             # <<<<<<<<<<<<<<
 *         "first": CRankOptionsTiebreaker_First,
 *         "dense": CRankOptionsTiebreaker_Dense,
*/
  __pyx_t_13 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_RankOptions_3a__3a_Tiebreaker(arrow::compute::RankOptions::Max); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_max, __pyx_t_13) < (0)) __PYX_ERR(0, 2456, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2458
 *         "min": CRankOptionsTiebreaker_Min,
 *         "max": CRankOptionsTiebreaker_Max,
 *         "first": CRankOptionsTiebreaker_First,             # <<<<<<<<<<<<<<
 *         "dense": CRankOptionsTiebreaker_Dense,
 *     }
*/
  __pyx_t_13 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_RankOptions_3a__3a_Tiebreaker(arrow::compute::RankOptions::First); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_first, __pyx_t_13) < (0)) __PYX_ERR(0, 2456, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2459
 *         "max": CRankOptionsTiebreaker_Max,
 *         "first": CRankOptionsTiebreaker_First,
 *         "dense": CRankOptionsTiebreaker_Dense,             # <<<<<<<<<<<<<<
 *     }
 * 
*/
  __pyx_t_13 = __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_RankOptions_3a__3a_Tiebreaker(arrow::compute::RankOptions::Dense); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_dense, __pyx_t_13) < (0)) __PYX_ERR(0, 2456, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RankOptions, __pyx_mstate_global->__pyx_n_u_tiebreaker_map, __pyx_t_9) < (0)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":2462
 *     }
 * 
 *     def _set_options(self, sort_keys, null_placement, tiebreaker):             # <<<<<<<<<<<<<<
 *         try:
 *             self.wrapped.reset(
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_RankOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RankOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[248])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2462, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RankOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_9) < (0)) __PYX_ERR(0, 2462, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_RankOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RankOptions___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[249])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_12_RankOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RankOptions___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[250])); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_9) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":2473
 * 
 * 
 * class RankOptions(_RankOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `rank` function.
*/
  __pyx_t_9 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RankOptions)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_13 = __Pyx_PEP560_update_bases(__pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_17 = __Pyx_CalculateMetaclass(NULL, __pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_17, __pyx_t_13, __pyx_mstate_global->__pyx_n_u_RankOptions_2, __pyx_mstate_global->__pyx_n_u_RankOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_rank_function_P); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__pyx_t_13 != __pyx_t_9) {
    if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_t_9) < 0))) __PYX_ERR(0, 2473, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":2502
 *     """
 * 
 *     def __init__(self, sort_keys="ascending", *, null_placement="at_end", tiebreaker="first"):             # <<<<<<<<<<<<<<
 *         self._set_options(sort_keys, null_placement, tiebreaker)
 * 
*/
  __pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_null_placement_2, ((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)) < (0)) __PYX_ERR(0, 2502, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_tiebreaker, ((PyObject*)__pyx_mstate_global->__pyx_n_u_first)) < (0)) __PYX_ERR(0, 2502, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11RankOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_RankOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[251])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[24]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_2, __pyx_t_9);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(0, 2502, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pyarrow/_compute.pyx":2473
 * 
 * 
 * class RankOptions(_RankOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `rank` function.
*/
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_RankOptions_2, __pyx_t_13, __pyx_t_4, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RankOptions_2, __pyx_t_2) < (0)) __PYX_ERR(0, 2473, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2508
 * cdef class _RankQuantileOptions(FunctionOptions):
 * 
 *     def _set_options(self, sort_keys, null_placement):             # <<<<<<<<<<<<<<
 *         self.wrapped.reset(
 *             new CRankQuantileOptions(unwrap_sort_keys(sort_keys),
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_RankQuantileOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RankQuantileOptions__set_option, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[252])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_13) < (0)) __PYX_ERR(0, 2508, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_RankQuantileOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RankQuantileOptions___reduce_cy, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_20_RankQuantileOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RankQuantileOptions___setstate, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_13) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2515
 * 
 * 
 * class RankQuantileOptions(_RankQuantileOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `rank_quantile` function.
*/
  __pyx_t_13 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__RankQuantileOptions)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_17 = __Pyx_PEP560_update_bases(__pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_17); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_17, __pyx_mstate_global->__pyx_n_u_RankQuantileOptions_2, __pyx_mstate_global->__pyx_n_u_RankQuantileOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_rank_quantile_f); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__pyx_t_17 != __pyx_t_13) {
    if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_13) < 0))) __PYX_ERR(0, 2515, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2533
 *     """
 * 
 *     def __init__(self, sort_keys="ascending", *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(sort_keys, null_placement)
 * 
*/
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_null_placement_2, ((PyObject*)__pyx_mstate_global->__pyx_n_u_at_end)) < (0)) __PYX_ERR(0, 2533, __pyx_L1_error)
  __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19RankQuantileOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_RankQuantileOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[24]);
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_9, __pyx_t_13);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_9) < (0)) __PYX_ERR(0, 2533, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "pyarrow/_compute.pyx":2515
 * 
 * 
 * class RankQuantileOptions(_RankQuantileOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `rank_quantile` function.
*/
  __pyx_t_9 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RankQuantileOptions_2, __pyx_t_17, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RankQuantileOptions_2, __pyx_t_9) < (0)) __PYX_ERR(0, 2515, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2539
 * cdef class _PivotWiderOptions(FunctionOptions):
 * 
 *     def _set_options(self, key_names, unexpected_key_behavior):             # <<<<<<<<<<<<<<
 *         cdef:
 *             vector[c_string] c_key_names
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18_PivotWiderOptions_1_set_options, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PivotWiderOptions__set_options, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions, __pyx_mstate_global->__pyx_n_u_set_options, __pyx_t_17) < (0)) __PYX_ERR(0, 2539, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18_PivotWiderOptions_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PivotWiderOptions___reduce_cyth, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_17) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.wrapped cannot be converted to a Python object for pickling"
*/
  __pyx_t_17 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_18_PivotWiderOptions_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PivotWiderOptions___setstate_cy, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_17);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_17) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2560
 * 
 * 
 * class PivotWiderOptions(_PivotWiderOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `pivot_wider` function.
*/
  __pyx_t_17 = PyTuple_Pack(1, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute__PivotWiderOptions)); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_17); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_PivotWiderOptions_2, __pyx_mstate_global->__pyx_n_u_PivotWiderOptions_2, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_kp_u_Options_for_the_pivot_wider_fun); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__pyx_t_4 != __pyx_t_17) {
    if (unlikely((PyDict_SetItemString(__pyx_t_9, "__orig_bases__", __pyx_t_17) < 0))) __PYX_ERR(0, 2560, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;

  /* "pyarrow/_compute.pyx":2577
 *     """
 * 
 *     def __init__(self, key_names, *, unexpected_key_behavior="ignore"):             # <<<<<<<<<<<<<<
 *         self._set_options(key_names, unexpected_key_behavior)
 * 
*/
  __pyx_t_17 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (PyDict_SetItem(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_unexpected_key_behavior, ((PyObject*)__pyx_mstate_global->__pyx_n_u_ignore)) < (0)) __PYX_ERR(0, 2577, __pyx_L1_error)
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_17PivotWiderOptions_1__init__, 0, __pyx_mstate_global->__pyx_n_u_PivotWiderOptions___init, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  __Pyx_CyFunction_SetDefaultsKwDict(__pyx_t_13, __pyx_t_17);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_13) < (0)) __PYX_ERR(0, 2577, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pyarrow/_compute.pyx":2560
 * 
 * 
 * class PivotWiderOptions(_PivotWiderOptions):             # <<<<<<<<<<<<<<
 *     """
 *     Options for the `pivot_wider` function.
*/
  __pyx_t_13 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PivotWiderOptions_2, __pyx_t_4, __pyx_t_9, NULL, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PivotWiderOptions_2, __pyx_t_13) < (0)) __PYX_ERR(0, 2560, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2631
 *         return self.expr
 * 
 *     def equals(self, Expression other):             # <<<<<<<<<<<<<<
 *         """
 *         Parameters
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_3equals, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression_equals, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_equals, __pyx_t_4) < (0)) __PYX_ERR(0, 2631, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2649
 *         return f"<pyarrow.compute.{self.__class__.__name__} {self}>"
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def from_substrait(object message not None):
 *         """
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_9from_substrait, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression_from_substrait, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_from_substrait, __pyx_t_4) < (0)) __PYX_ERR(0, 2649, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = NULL;
  __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_from_substrait); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9};
    __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2649, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_from_substrait, __pyx_t_4) < (0)) __PYX_ERR(0, 2649, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2678
 *         return next(iter(expressions.values()))
 * 
 *     def to_substrait(self, Schema schema not None, c_bool allow_arrow_extensions=False):             # <<<<<<<<<<<<<<
 *         """
 *         Serialize the expression using Substrait
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_11to_substrait, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression_to_substrait, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2678, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[22]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_to_substrait, __pyx_t_4) < (0)) __PYX_ERR(0, 2678, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2701
 *         return _pas().serialize_expressions([self], ["expression"], schema, allow_arrow_extensions=allow_arrow_extensions)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _deserialize(Buffer buffer not None):
 *         return Expression.wrap(GetResultValue(CDeserializeExpression(
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_13_deserialize, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression__deserialize, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_deserialize, __pyx_t_4) < (0)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_9 = NULL;
  __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_deserialize); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_11 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2};
    __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_deserialize, __pyx_t_4) < (0)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2706
 *             pyarrow_unwrap_buffer(buffer))))
 * 
 *     def __reduce__(self):             # <<<<<<<<<<<<<<
 *         buffer = pyarrow_wrap_buffer(GetResultValue(
 *             CSerializeExpression(self.expr)))
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_15__reduce__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression___reduce, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2706, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_reduce, __pyx_t_4) < (0)) __PYX_ERR(0, 2706, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2717
 *         return (<Expression> Expression._scalar(expr))
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _call(str function_name, list arguments, FunctionOptions options=None):
 *         cdef:
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_17_call, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression__call, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[5]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_call_2, __pyx_t_4) < (0)) __PYX_ERR(0, 2717, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = NULL;
  __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_call_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9};
    __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2717, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_call_2, __pyx_t_4) < (0)) __PYX_ERR(0, 2717, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2784
 *         return Expression._call("divide_checked", [self, other])
 * 
 *     def is_valid(self):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is not-null (valid).
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_37is_valid, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression_is_valid, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_is_valid, __pyx_t_4) < (0)) __PYX_ERR(0, 2784, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2797
 *         return Expression._call("is_valid", [self])
 * 
 *     def is_null(self, bint nan_is_null=False):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is null.
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_39is_null, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression_is_null, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[22]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_is_null, __pyx_t_4) < (0)) __PYX_ERR(0, 2797, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2816
 *         return Expression._call("is_null", [self], options)
 * 
 *     def is_nan(self):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is NaN.
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_41is_nan, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression_is_nan, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_is_nan, __pyx_t_4) < (0)) __PYX_ERR(0, 2816, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2829
 *         return Expression._call("is_nan", [self])
 * 
 *     def cast(self, type=None, safe=None, options=None):             # <<<<<<<<<<<<<<
 *         """
 *         Explicitly set or change the expression's data type.
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_43cast, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression_cast, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[4]);
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_cast, __pyx_t_4) < (0)) __PYX_ERR(0, 2829, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2863
 *         return Expression._call("cast", [self], options)
 * 
 *     def isin(self, values):             # <<<<<<<<<<<<<<
 *         """
 *         Check whether the expression is contained in values.
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_45isin, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression_isin, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_isin, __pyx_t_4) < (0)) __PYX_ERR(0, 2863, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2887
 *         return Expression._call("is_in", [self], options)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _field(name_or_idx not None):
 *         cdef:
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_47_field, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression__field, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_field, __pyx_t_4) < (0)) __PYX_ERR(0, 2887, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_9 = NULL;
  __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_field); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_11 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2};
    __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2887, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_field, __pyx_t_4) < (0)) __PYX_ERR(0, 2887, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2898
 *             return Expression.wrap(CMakeFieldExpression(c_field))
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _nested_field(tuple names not None):
 *         cdef:
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_49_nested_field, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression__nested_field, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_nested_field, __pyx_t_4) < (0)) __PYX_ERR(0, 2898, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = NULL;
  __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_nested_field); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9};
    __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2898, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_nested_field, __pyx_t_4) < (0)) __PYX_ERR(0, 2898, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2913
 *         return Expression.wrap(CMakeFieldExpression(CFieldRef(move(nested))))
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _scalar(value):
 *         cdef:
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10Expression_51_scalar, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Expression__scalar, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_scalar_2, __pyx_t_4) < (0)) __PYX_ERR(0, 2913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_9 = NULL;
  __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_scalar_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_11 = 1;
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2};
    __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
  }
  if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression, __pyx_mstate_global->__pyx_n_u_scalar_2, __pyx_t_4) < (0)) __PYX_ERR(0, 2913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2926
 * 
 * 
 * _deserialize = Expression._deserialize             # <<<<<<<<<<<<<<
 * cdef CExpression _true = CMakeScalarExpression(
 *     <shared_ptr[CScalar]> make_shared[CBooleanScalar](True)
*/
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_mstate_global->__pyx_ptype_7pyarrow_8_compute_Expression), __pyx_mstate_global->__pyx_n_u_deserialize); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_deserialize, __pyx_t_4) < (0)) __PYX_ERR(0, 2926, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":2928
 * _deserialize = Expression._deserialize
 * cdef CExpression _true = CMakeScalarExpression(
 *     <shared_ptr[CScalar]> make_shared[CBooleanScalar](True)             # <<<<<<<<<<<<<<
 * )
 * 
*/
  try {
    __pyx_t_19 = std::make_shared< arrow::BooleanScalar>(1);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 2928, __pyx_L1_error)
  }

  /* "pyarrow/_compute.pyx":2927
 * 
 * _deserialize = Expression._deserialize
 * cdef CExpression _true = CMakeScalarExpression(             # <<<<<<<<<<<<<<
 *     <shared_ptr[CScalar]> make_shared[CBooleanScalar](True)
 * )
*/
  __pyx_v_7pyarrow_8_compute__true = arrow::compute::literal(((std::shared_ptr< arrow::Scalar> )__pyx_t_19));

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10UdfContext_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_UdfContext___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.c_context cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_10UdfContext_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_UdfContext___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":3017
 * 
 * 
 * def _get_udf_context(memory_pool, batch_length):             # <<<<<<<<<<<<<<
 *     cdef CUdfContext c_context
 *     c_context.pool = maybe_unbox_memory_pool(memory_pool)
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_19_get_udf_context, 0, __pyx_mstate_global->__pyx_n_u_get_udf_context, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_udf_context, __pyx_t_4) < (0)) __PYX_ERR(0, 3017, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11RegisterUdf_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RegisterUdf___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_reduce_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError, "self.register_func cannot be converted to a Python object for pickling"
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_11RegisterUdf_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RegisterUdf___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_4) < (0)) __PYX_ERR(1, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":3058
 * 
 * 
 * def register_scalar_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                              func_registry=None):
 *     """
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_21register_scalar_function, 0, __pyx_mstate_global->__pyx_n_u_register_scalar_function, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3058, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[5]);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_register_scalar_function, __pyx_t_4) < (0)) __PYX_ERR(0, 3058, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":3139
 * 
 * 
 * def register_vector_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                              func_registry=None):
 *     """
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_23register_vector_function, 0, __pyx_mstate_global->__pyx_n_u_register_vector_function, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[5]);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_register_vector_function, __pyx_t_4) < (0)) __PYX_ERR(0, 3139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":3216
 * 
 * 
 * def register_aggregate_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                                 func_registry=None):
 *     """
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_25register_aggregate_function, 0, __pyx_mstate_global->__pyx_n_u_register_aggregate_function, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[5]);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_register_aggregate_function, __pyx_t_4) < (0)) __PYX_ERR(0, 3216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":3305
 * 
 * 
 * def register_tabular_function(func, function_name, function_doc, in_types, out_type,             # <<<<<<<<<<<<<<
 *                               func_registry=None):
 *     """
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_27register_tabular_function, 0, __pyx_mstate_global->__pyx_n_u_register_tabular_function, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[5]);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_register_tabular_function, __pyx_t_4) < (0)) __PYX_ERR(0, 3305, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":3353
 * 
 * 
 * def _register_user_defined_function(register_func, func, function_name, function_doc, in_types,             # <<<<<<<<<<<<<<
 *                                     out_type, func_registry=None):
 *     """
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_29_register_user_defined_function, 0, __pyx_mstate_global->__pyx_n_u_register_user_defined_function, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[5]);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_register_user_defined_function, __pyx_t_4) < (0)) __PYX_ERR(0, 3353, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":3444
 * 
 * 
 * def call_tabular_function(function_name, args=None, func_registry=None):             # <<<<<<<<<<<<<<
 *     """
 *     Get a record batch iterator from a tabular function.
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_31call_tabular_function, 0, __pyx_mstate_global->__pyx_n_u_call_tabular_function, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[26]);
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_call_tabular_function, __pyx_t_4) < (0)) __PYX_ERR(0, 3444, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "(tree fragment)":4
 *     int __Pyx_CheckUnpickleChecksum(long, long, long, long, const char*) except -1
 *     int __Pyx_UpdateUnpickledDict(object, object, Py_ssize_t) except -1
 * def __pyx_unpickle_Kernel(__pyx_type, long __pyx_checksum, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_result
 *     __Pyx_CheckUnpickleChecksum(__pyx_checksum, 0xe3b0c44, 0xda39a3e, 0xd41d8cd, b'')
*/
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_7pyarrow_8_compute_33__pyx_unpickle_Kernel, 0, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Kernel, NULL, __pyx_mstate_global->__pyx_n_u_pyarrow__compute, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
  PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4);
  #endif
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_unpickle_Kernel, __pyx_t_4) < (0)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pyarrow/_compute.pyx":1
 * # Licensed to the Apache Software Foundation (ASF) under one             # <<<<<<<<<<<<<<
 * # or more contributor license agreements.  See the NOTICE file
 * # distributed with this work for additional information
*/
  __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_register_scalar_function_line_30, __pyx_mstate_global->__pyx_kp_u_Register_a_user_defined_scalar) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_register_vector_function_line_31, __pyx_mstate_global->__pyx_kp_u_Register_a_user_defined_vector) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_register_aggregate_function_line, __pyx_mstate_global->__pyx_kp_u_Register_a_user_defined_non_dec) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_4) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  if (__pyx_m) {
    if (__pyx_mstate->__pyx_d && stringtab_initialized) {
      __Pyx_AddTraceback("init pyarrow._compute", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    #if !CYTHON_USE_MODULE_STATE
    Py_CLEAR(__pyx_m);
    #else
    Py_DECREF(__pyx_m);
    if (pystate_addmodule_run) {
      PyObject *tp, *value, *tb;
      PyErr_Fetch(&tp, &value, &tb);
      PyState_RemoveModule(&__pyx_moduledef);
      PyErr_Restore(tp, value, tb);
    }
    #endif
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init pyarrow._compute");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #else
  return __pyx_m;
  #endif
}
/* #### Code section: pystring_table ### */
/* #### Code section: cached_builtins ### */

static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) {
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_staticmethod); if (!__pyx_builtin_staticmethod) __PYX_ERR(0, 626, __pyx_L1_error)

  /* Cached unbound methods */
  __pyx_mstate->__pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_items.method_name = &__pyx_mstate->__pyx_n_u_items;
  __pyx_mstate->__pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_pop.method_name = &__pyx_mstate->__pyx_n_u_pop;
  __pyx_mstate->__pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
  __pyx_mstate->__pyx_umethod_PyDict_Type_values.method_name = &__pyx_mstate->__pyx_n_u_values;
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: cached_constants ### */

static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) {
  __Pyx_RefNannyDeclarations
  CYTHON_UNUSED_VAR(__pyx_mstate);
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "pyarrow/_compute.pyx":654
 *         type_name = self.__class__.__name__
 *         # Remove {} so we can use our own braces
 *         string_repr = frombytes(self.get_options().ToString())[1:-1]             # <<<<<<<<<<<<<<
 *         return f"{type_name}({string_repr})"
 * 
*/
  __pyx_mstate_global->__pyx_slice[0] = PySlice_New(__pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_int_neg_1, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[0])) __PYX_ERR(0, 654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[0]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[0]);

  /* "pyarrow/_compute.pyx":2176
 *     def __init__(self, start=None, *, skip_nulls=False):
 *         warnings.warn(
 *             _DEPR_MSG.format("CumulativeSumOptions", "14.0", "CumulativeOptions"),             # <<<<<<<<<<<<<<
 *             FutureWarning,
 *             stacklevel=2
*/
  __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(3, __pyx_mstate_global->__pyx_n_u_CumulativeSumOptions, __pyx_mstate_global->__pyx_kp_u_14_0, __pyx_mstate_global->__pyx_n_u_CumulativeOptions); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 2176, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]);

  /* "pyarrow/_compute.pyx":69
 * 
 * 
 * def _forbid_instantiation(klass, subclasses_instead=True):             # <<<<<<<<<<<<<<
 *     msg = f'{klass.__name__} is an abstract class thus cannot be initialized.'
 *     if subclasses_instead:
*/
  __pyx_mstate_global->__pyx_tuple[1] = PyTuple_Pack(1, ((PyObject*)Py_True)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[1]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]);

  /* "pyarrow/_compute.pyx":249
 * FunctionDoc = namedtuple(
 *     "FunctionDoc",
 *     ("summary", "description", "arg_names", "options_class",             # <<<<<<<<<<<<<<
 *      "options_required"))
 * 
*/
  __pyx_mstate_global->__pyx_tuple[2] = PyTuple_Pack(5, __pyx_mstate_global->__pyx_n_u_summary, __pyx_mstate_global->__pyx_n_u_description, __pyx_mstate_global->__pyx_n_u_arg_names, __pyx_mstate_global->__pyx_n_u_options_class, __pyx_mstate_global->__pyx_n_u_options_required); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(0, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[2]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[2]);

  /* "pyarrow/_compute.pyx":247
 * 
 * 
 * FunctionDoc = namedtuple(             # <<<<<<<<<<<<<<
 *     "FunctionDoc",
 *     ("summary", "description", "arg_names", "options_class",
*/
  __pyx_mstate_global->__pyx_tuple[3] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_n_u_FunctionDoc, __pyx_mstate_global->__pyx_tuple[2]); if (unlikely(!__pyx_mstate_global->__pyx_tuple[3])) __PYX_ERR(0, 247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[3]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[3]);

  /* "pyarrow/_compute.pyx":360
 *         return self.base_func.num_kernels()
 * 
 *     def call(self, args, FunctionOptions options=None,             # <<<<<<<<<<<<<<
 *              MemoryPool memory_pool=None, length=None):
 *         """
*/
  __pyx_mstate_global->__pyx_tuple[4] = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[4])) __PYX_ERR(0, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[4]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[4]);

  /* "pyarrow/_compute.pyx":702
 *             self.allow_invalid_utf8 = allow_invalid_utf8
 * 
 *     def _set_type(self, target_type=None):             # <<<<<<<<<<<<<<
 *         if target_type is not None:
 *             deref(self.options).to_type = \
*/
  __pyx_mstate_global->__pyx_tuple[5] = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[5]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[5]);

  /* "pyarrow/_compute.pyx":913
 *     """
 * 
 *     def __init__(self, ndigits=0, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(ndigits, round_mode)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[6] = PyTuple_Pack(2, ((PyObject*)__pyx_mstate_global->__pyx_int_0), ((PyObject*)__pyx_mstate_global->__pyx_n_u_half_to_even)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[6])) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[6]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[6]);

  /* "pyarrow/_compute.pyx":937
 *     """
 * 
 *     def __init__(self, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(round_mode)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[7] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_n_u_half_to_even)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[7])) __PYX_ERR(0, 937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[7]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[7]);

  /* "pyarrow/_compute.pyx":1022
 *     """
 * 
 *     def __init__(self, multiple=1, unit="day", *, week_starts_monday=True,             # <<<<<<<<<<<<<<
 *                  ceil_is_strictly_greater=False,
 *                  calendar_based_origin=False):
*/
  __pyx_mstate_global->__pyx_tuple[8] = PyTuple_Pack(2, ((PyObject*)__pyx_mstate_global->__pyx_int_1), ((PyObject*)__pyx_mstate_global->__pyx_n_u_day)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[8])) __PYX_ERR(0, 1022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[8]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[8]);

  /* "pyarrow/_compute.pyx":1062
 *     """
 * 
 *     def __init__(self, multiple=1.0, round_mode="half_to_even"):             # <<<<<<<<<<<<<<
 *         self._set_options(multiple, round_mode)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[9] = PyTuple_Pack(2, ((PyObject*)__pyx_mstate_global->__pyx_float_1_0), ((PyObject*)__pyx_mstate_global->__pyx_n_u_half_to_even)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[9])) __PYX_ERR(0, 1062, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[9]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[9]);

  /* "pyarrow/_compute.pyx":1097
 *     """
 * 
 *     def __init__(self, null_handling="emit_null", null_replacement=""):             # <<<<<<<<<<<<<<
 *         self._set_options(null_handling, null_replacement)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[10] = PyTuple_Pack(2, ((PyObject*)__pyx_mstate_global->__pyx_n_u_emit_null), ((PyObject*)__pyx_mstate_global->__pyx_kp_u__3)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[10])) __PYX_ERR(0, 1097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[10]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[10]);

  /* "pyarrow/_compute.pyx":1145
 *     """
 * 
 *     def __init__(self, width, padding=' ', lean_left_on_odd_padding=True):             # <<<<<<<<<<<<<<
 *         self._set_options(width, padding, lean_left_on_odd_padding)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[11] = PyTuple_Pack(2, ((PyObject*)__pyx_mstate_global->__pyx_kp_u__8), ((PyObject*)Py_True)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[11])) __PYX_ERR(0, 1145, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[11]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[11]);

  /* "pyarrow/_compute.pyx":1175
 *     """
 * 
 *     def __init__(self, width, padding='0'):             # <<<<<<<<<<<<<<
 *         self._set_options(width, padding)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[12] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_kp_u_0)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[12])) __PYX_ERR(0, 1175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[12]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[12]);

  /* "pyarrow/_compute.pyx":1286
 *     """
 * 
 *     def __init__(self, start, stop=None, step=1):             # <<<<<<<<<<<<<<
 *         if stop is None:
 *             stop = sys.maxsize
*/
  __pyx_mstate_global->__pyx_tuple[13] = PyTuple_Pack(2, Py_None, ((PyObject*)__pyx_mstate_global->__pyx_int_1)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[13])) __PYX_ERR(0, 1286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[13]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[13]);

  /* "pyarrow/_compute.pyx":1295
 * 
 * cdef class _ListSliceOptions(FunctionOptions):
 *     cpdef _set_options(self, start, stop=None, step=1, return_fixed_size_list=None):             # <<<<<<<<<<<<<<
 *         cdef:
 *             CListSliceOptions* opts
*/
  __pyx_mstate_global->__pyx_tuple[14] = PyTuple_Pack(3, Py_None, __pyx_mstate_global->__pyx_int_1, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[14])) __PYX_ERR(0, 1295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[14]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[14]);

  /* "pyarrow/_compute.pyx":1387
 *     """
 * 
 *     def __init__(self, null_selection_behavior="drop"):             # <<<<<<<<<<<<<<
 *         self._set_options(null_selection_behavior)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[15] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_n_u_drop)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[15])) __PYX_ERR(0, 1387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[15]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[15]);

  /* "pyarrow/_compute.pyx":1421
 *     """
 * 
 *     def __init__(self, null_encoding="mask"):             # <<<<<<<<<<<<<<
 *         self._set_options(null_encoding)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[16] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_n_u_mask)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[16])) __PYX_ERR(0, 1421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[16]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[16]);

  /* "pyarrow/_compute.pyx":1448
 * 
 * cdef class _InversePermutationOptions(FunctionOptions):
 *     def _set_options(self, max_index=-1, output_type=None):             # <<<<<<<<<<<<<<
 *         cdef optional[shared_ptr[CDataType]] c_output_type = nullopt
 *         if output_type is not None:
*/
  __pyx_mstate_global->__pyx_tuple[17] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_int_neg_1, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[17])) __PYX_ERR(0, 1448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[17]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[17]);

  /* "pyarrow/_compute.pyx":1497
 *     """
 * 
 *     def __init__(self, max_index=-1):             # <<<<<<<<<<<<<<
 *         self._set_options(max_index)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[18] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_int_neg_1)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[18])) __PYX_ERR(0, 1497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[18]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[18]);

  /* "pyarrow/_compute.pyx":1552
 *     """
 * 
 *     def __init__(self, field_names=(), *, field_nullability=None,             # <<<<<<<<<<<<<<
 *                  field_metadata=None):
 *         if field_nullability is None:
*/
  __pyx_mstate_global->__pyx_tuple[19] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_empty_tuple)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[19])) __PYX_ERR(0, 1552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[19]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[19]);

  /* "pyarrow/_compute.pyx":1660
 *     """
 * 
 *     def __init__(self, mode="only_valid"):             # <<<<<<<<<<<<<<
 *         self._set_options(mode)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[20] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_n_u_only_valid)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[20])) __PYX_ERR(0, 1660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[20]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[20]);

  /* "pyarrow/_compute.pyx":1740
 *     """
 * 
 *     def __init__(self, n=1, *, skip_nulls=True, min_count=0):             # <<<<<<<<<<<<<<
 *         self._set_options(n, skip_nulls, min_count)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[21] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_int_1)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[21])) __PYX_ERR(0, 1740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[21]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[21]);

  /* "pyarrow/_compute.pyx":1816
 *     """
 * 
 *     def __init__(self, format, unit, error_is_null=False):             # <<<<<<<<<<<<<<
 *         self._set_options(format, unit, error_is_null)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[22] = PyTuple_Pack(1, ((PyObject*)Py_False)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[22])) __PYX_ERR(0, 1816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[22]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[22]);

  /* "pyarrow/_compute.pyx":1839
 *     """
 * 
 *     def __init__(self, format="%Y-%m-%dT%H:%M:%S", locale="C"):             # <<<<<<<<<<<<<<
 *         self._set_options(format, locale)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[23] = PyTuple_Pack(2, ((PyObject*)__pyx_mstate_global->__pyx_kp_u_Y_m_dT_H_M_S), ((PyObject*)__pyx_mstate_global->__pyx_n_u_C)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[23])) __PYX_ERR(0, 1839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[23]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[23]);

  /* "pyarrow/_compute.pyx":2242
 *     """
 * 
 *     def __init__(self, order="ascending", *, null_placement="at_end"):             # <<<<<<<<<<<<<<
 *         self._set_options(order, null_placement)
 * 
*/
  __pyx_mstate_global->__pyx_tuple[24] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_n_u_ascending)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[24])) __PYX_ERR(0, 2242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[24]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[24]);

  /* "pyarrow/_compute.pyx":2341
 *     """
 * 
 *     def __init__(self, q=0.5, *, interpolation="linear", skip_nulls=True,             # <<<<<<<<<<<<<<
 *                  min_count=0):
 *         if not isinstance(q, SUPPORTED_INPUT_ARR_TYPES):
*/
  __pyx_mstate_global->__pyx_tuple[25] = PyTuple_Pack(1, ((PyObject*)__pyx_mstate_global->__pyx_float_0_5)); if (unlikely(!__pyx_mstate_global->__pyx_tuple[25])) __PYX_ERR(0, 2341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[25]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[25]);

  /* "pyarrow/_compute.pyx":3444
 * 
 * 
 * def call_tabular_function(function_name, args=None, func_registry=None):             # <<<<<<<<<<<<<<
 *     """
 *     Get a record batch iterator from a tabular function.
*/
  __pyx_mstate_global->__pyx_tuple[26] = PyTuple_Pack(2, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_tuple[26])) __PYX_ERR(0, 3444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[26]);
  __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[26]);
  #if CYTHON_IMMORTAL_CONSTANTS
  {
    PyObject **table = __pyx_mstate->__pyx_tuple;
    for (Py_ssize_t i=0; i<27; ++i) {
      #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
      #if PY_VERSION_HEX < 0x030E0000
      if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
      #else
      if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
      #endif
      {
        Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);
      }
      #else
      Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
      #endif
    }
  }
  #endif
  #if CYTHON_IMMORTAL_CONSTANTS
  {
    PyObject **table = __pyx_mstate->__pyx_slice;
    for (Py_ssize_t i=0; i<1; ++i) {
      #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
      #if PY_VERSION_HEX < 0x030E0000
      if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
      #else
      if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
      #endif
      {
        Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);
      }
      #else
      Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
      #endif
    }
  }
  #endif
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}
/* #### Code section: init_constants ### */

static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
  CYTHON_UNUSED_VAR(__pyx_mstate);
  {
    const struct { const unsigned int length: 12; } index[] = {{1},{1},{4},{140},{13},{20},{12},{83},{59},{39},{35},{35},{17},{29},{20},{15},{141},{75},{179},{501},{254},{349},{86},{771},{673},{224},{245},{470},{151},{383},{370},{256},{428},{518},{392},{2098},{234},{73},{410},{237},{315},{419},{359},{362},{491},{378},{832},{217},{344},{154},{159},{126},{355},{177},{411},{295},{153},{324},{567},{698},{1241},{669},{89},{587},{259},{606},{303},{286},{394},{191},{155},{667},{328},{544},{168},{470},{2987},{2660},{2362},{22},{13},{36},{104},{49},{65},{38},{26},{22},{81},{36},{13},{17},{1},{2},{0},{1},{1},{1},{1},{1},{5},{8},{30},{8},{28},{167},{10},{7},{6},{21},{23},{2},{41},{70},{9},{49},{17},{9},{7},{25},{40},{42},{32},{13},{13},{14},{23},{14},{43},{20},{17},{22},{39},{36},{36},{10},{23},{66},{63},{77},{70},{65},{64},{152},{10},{34},{9},{15},{9},{17},{16},{25},{35},{37},{30},{12},{22},{21},{30},{40},{42},{35},{16},{1},{11},{12},{20},{30},{32},{25},{22},{22},{24},{20},{16},{18},{13},{12},{21},{31},{33},{26},{17},{18},{26},{36},{38},{31},{20},{29},{9},{17},{16},{25},{35},{37},{30},{24},{23},{32},{42},{44},{37},{28},{27},{36},{46},{48},{41},{10},{21},{16},{23},{17},{24},{18},{15},{17},{25},{17},{18},{19},{15},{23},{20},{19},{28},{38},{40},{33},{24},{23},{32},{42},{44},{37},{14},{13},{22},{32},{34},{27},{8},{11},{15},{33},{35},{27},{25},{16},{34},{36},{29},{31},{19},{13},{21},{19},{37},{39},{13},{12},{21},{31},{33},{26},{26},{25},{34},{44},{46},{39},{12},{11},{20},{30},{32},{25},{6},{24},{26},{19},{18},{27},{37},{39},{32},{17},{16},{25},{35},{37},{30},{18},{17},{26},{36},{38},{31},{17},{16},{25},{35},{37},{30},{22},{21},{30},{40},{42},{35},{12},{12},{11},{20},{30},{32},{25},{3},{3},{4},{4},{11},{12},{20},{30},{32},{25},{11},{10},{19},{29},{31},{24},{16},{15},{24},{34},{36},{29},{20},{19},{28},{38},{40},{33},{18},{17},{26},{36},{38},{31},{20},{16},{15},{24},{34},{36},{29},{14},{13},{22},{32},{34},{27},{12},{11},{20},{30},{32},{25},{20},{19},{28},{38},{40},{33},{11},{29},{31},{20},{19},{28},{38},{40},{33},{24},{23},{32},{42},{44},{37},{19},{18},{27},{37},{39},{32},{13},{12},{21},{31},{33},{26},{21},{20},{29},{39},{41},{34},{23},{22},{31},{41},{43},{36},{20},{19},{28},{38},{40},{33},{25},{6},{23},{21},{39},{41},{23},{22},{31},{41},{43},{36},{14},{12},{30},{32},{15},{14},{23},{33},{35},{28},{15},{14},{23},{33},{35},{28},{16},{17},{25},{35},{37},{30},{12},{11},{20},{30},{32},{25},{13},{12},{21},{31},{33},{26},{12},{11},{20},{30},{32},{25},{13},{12},{21},{31},{33},{26},{20},{19},{28},{38},{40},{33},{16},{15},{24},{34},{36},{29},{16},{15},{24},{34},{36},{29},{19},{18},{27},{37},{39},{32},{15},{14},{23},{33},{35},{28},{12},{11},{20},{30},{32},{25},{12},{11},{20},{30},{32},{25},{10},{28},{30},{21},{20},{29},{39},{41},{34},{16},{15},{24},{34},{36},{29},{14},{12},{30},{32},{12},{11},{20},{30},{32},{25},{17},{16},{25},{35},{37},{30},{16},{15},{24},{34},{36},{29},{11},{3},{22},{22},{20},{18},{18},{19},{19},{9},{14},{10},{9},{4},{8},{9},{5},{5},{7},{9},{18},{6},{8},{12},{6},{11},{3},{6},{11},{6},{11},{7},{7},{5},{9},{10},{7},{16},{13},{10},{11},{15},{10},{10},{11},{6},{9},{10},{13},{8},{15},{8},{6},{25},{21},{4},{5},{13},{21},{4},{24},{10},{9},{17},{18},{3},{11},{7},{15},{3},{4},{7},{5},{5},{10},{11},{12},{11},{8},{5},{14},{7},{4},{4},{8},{9},{6},{5},{6},{13},{15},{10},{11},{6},{14},{11},{17},{9},{5},{27},{21},{4},{9},{6},{12},{14},{9},{4},{8},{13},{9},{12},{13},{17},{12},{16},{14},{12},{7},{13},{9},{12},{11},{21},{17},{7},{14},{6},{4},{6},{11},{7},{8},{7},{8},{11},{7},{5},{6},{11},{13},{6},{13},{5},{6},{7},{7},{8},{4},{5},{1},{9},{4},{4},{9},{5},{4},{6},{24},{6},{4},{10},{3},{6},{14},{6},{5},{11},{8},{4},{3},{9},{16},{10},{7},{13},{11},{7},{4},{13},{8},{11},{8},{11},{3},{9},{14},{6},{4},{9},{10},{6},{5},{15},{2},{3},{8},{16},{1},{8},{4},{11},{10},{5},{11},{10},{7},{7},{7},{6},{13},{7},{4},{11},{16},{9},{2},{2},{13},{18},{13},{18},{14},{16},{23},{19},{8},{11},{5},{10},{15},{9},{10},{7},{13},{16},{9},{5},{5},{8},{11},{7},{5},{4},{3},{7},{6},{5},{4},{3},{11},{16},{11},{17},{12},{12},{14},{12},{11},{10},{21},{14},{1},{12},{9},{7},{9},{5},{30},{6},{9},{10},{17},{13},{27},{13},{24},{25},{31},{24},{7},{11},{3},{6},{22},{7},{10},{10},{12},{1},{4},{16},{6},{7},{16},{6},{6},{4},{9},{21},{12},{12},{9},{9},{11},{10},{12},{19},{4},{10},{15},{9},{9},{10},{5},{10},{5},{12},{4},{4},{14},{10},{18},{9},{14},{16},{7},{3},{6},{11},{8},{10},{15},{8},{12},{7},{16},{12},{4},{9},{23},{4},{9},{6},{2},{6},{11},{2},{12},{6},{5},{9},{6},{7},{6},{4},{8},{4},{10},{18},{5},{7},{4},{1},{0},{445},{973},{32},{33},{20},{7},{25},{155},{9},{16},{19},{19},{33},{19},{19},{25},{23},{23},{35},{74},{21},{113},{63},{11},{142},{45},{88},{113},{75},{39},{55},{112},{33},{23},{23},{89},{66},{28},{32},{30},{20},{18},{18},{22},{22},{22},{23},{33},{18},{21},{32},{22},{26},{20},{25},{22},{20},{26},{22},{26},{24},{30},{23},{34},{25},{18},{29},{24},{18},{27},{22},{24},{35},{35},{15},{11},{13},{15},{13},{130},{49},{72},{119},{58},{135},{83},{39},{55},{47},{44},{48},{43},{46},{51},{25},{40},{11},{33},{84},{42},{111},{21},{34},{75},{34},{19},{19},{18},{122},{91},{314},{14},{18},{16},{34},{19},{23},{35},{9},{36},{18},{19},{18},{18},{16},{16},{74},{35},{36},{12},{16},{18},{47},{35},{52},{24},{20},{48},{53},{55},{14},{14},{35},{42},{23},{48},{52}};
    #if (CYTHON_COMPRESS_STRINGS) == 3 && __PYX_LIMITED_VERSION_HEX >= 0x030e0000 /* compression: zstd (14097 bytes) */
const char* const cstring = "(\265/\375`K\330=\270\001\2725\371=G\340\322\250\0030\314\363D\204\201\3478\345\211\010\303\323<\r\317\347\360\"\037\301\"RV2\266\224D[\312\225\200\220\264$\233\264\204\253\332\204\200qw:\005f\020w?\002~c\037\244\377\022\215\210\210\010\002\343\335\335e\304R\003z\003\307\0033\371\242B\241vR(\023\252\303\207\224\3123\256\221\3315gv\352:m}/\324\351ZU\202\260\321S\317\353\027g\257Z\373;\2745\304\260\377\330k_\374\375\316\036\376d\377\031\375\367\361\271U4szC\353\031\203\337oz\261G\237V\240\373\257\030}lYu\273\333\234R\371U\362-X?)\352D\263\326\255xj\232=\2067\030\212n\014S\377\3142}m\361\023\357\331\262\376z\212\277)=\317\255\033\224\336\325\025\342\355\272T\277joH\222\236\277\326n\301g\241\365\337\322\314\332\260\365 ~\221\274\034b-\275\332\252\336\203\332$\372~\353\231\026\321\377\255\353\365\214\363\323\033f\317\177\337%?L\257\347\231\245\270\372T\007K\373\345\252\331\363\226\275<\375iF\236J\357y\366\227\367\3711\235\224\342y\361\334\255\267\363\372\333=cQ\033\342\227\216\334.\222\364s\325?\363\332\264\306(u\360\345m\377\336\244\335\233\2371\255x\337\014\3020\246\377]\227\266\356\033\322\317\241\367\371\367v\333\232/\257\276b>>'\255?\374\371\274\375\263\007z\247G\276[\223^\237{\265B\247F\272\234\177\243\352I_V[\363\346p\177~\035\360K\364\301\017\305\3067$y\242\367]\366$\271\275\207\307:\250C\353\335J\222\372\257W\255\376\214\267\266,o\355\214\301\317\031\347\374\222V\353w%O\371]O\377\272\252\226\216e\247\375?\327\222\356\370\366\231\337{\277\356\\\237\222:\264\240\256,im\215i\037=\200`\371\332\256\373\366d\375_;)\023\014\007\251\232\337|\240[]\276\2561\323\333\307\373V\014J\331\213dW\232y\316\372]\356\372\275\324$\t\276\347\255>\206O\210`\332?\321\326\263\322\020\374\260'O\016\322\317\177sm\265`X\214Yz\202\025\246CL\357\203O\275\273\256\253\363\027\337\310mCo=\225]v\353\236\216T\311\235}k\235\177\377\347\331qn\225\371\2073H\037\346\375\313\233\322t\340\244[\322ge\272\r\277\320\363a\361@5W*G\323\367ky\377\352[\267\255!K?+\324Ro\357m|\206\361\000c\302\241\301\2217""\377\366\352\314>\253\332\2472r\373o|3\322\330\277\345z$\351u9j\2012\327\2679p\332!\356|\366\r\2617o\375|d\014[-O;\004o\225\372\245\265\3415]|\363\263\276\360\312/\374l\344\201\020\366o~\025\277\335\365\331\345Z\275\264\237\220\017\316\266\334\367\277\360o\270b\205\213\233\230\376\317\357t\345Y\366\357\0135X\263W}_\254\303Oz\230n\357\2065'Zu\250\265[\317Y.o\335\330\204<e\334\302r\353je\267o\315[k\227\357\335\317\337\372,\251\375\332\222\356\275\265\356I<#\222\177\243Z\257\371\365S\231]o(\263\323\373\326eN\324\177\353[\345hG\016\r\235\316x{~p4\312x$\273\021\275>\222\377\332\322u\253\016\345g\227!\236\311\026\nyzm\275Ff,?\314;\257=\003%\336\222\376\366\320:\320\313g\311\215\357uO^\\\265\376\014\312h\344]\241N0)\324)\237e\256 \350_\017\217\250+\221\244H\2041\235\345\374So\250O+\235\316X\352\251eZ\324\205\354\267J\226X$\371\266\204\t\351\"\351\277'\373\331\314n\317Y`\210\263\313u\177W}k\253\345]\371\277\226\377\302N\323\214c\026K\275C\357e\357+V;746(Z\320\340\304\240A\201\263\262,\327\370\342k\312\272\366\214^P(\026\027\024\312\224B\241P#\036\322\326\325\316\300\211\367\251\024\223\235\004\023C\262\266\326\340\3743N\236\336 .\365\210^X\\L)\021\017\351\024#\275\223\254R\204\010\0214(k\351[\017i\005\252\337Ws\247\253\364\267o_\233`\362\303{cV\013\210\037\010\263\034\004\365\210v_\2653\343\324\013\352Ev\037\\\336\373\031\355\263\354\341\365\024\250y\353\234/\033\\6\314\352\367:\264\255\355\024\323\317\256\247-L)\320S\272\265w\275f\007\232\231Q\321\211djn\276z]\330;e\211\r!\353\313\330e]\232v\300\017\205\362m\237\372We\240WZzi\317\236\2349\316\244N\327\353\247[5\353a\276\363\277vk\353\277`(ax|\350\337\352//\343Nv\272\353\341\231\333\013[\372\342\026\327_\337P\347Pk\375\324\342\227\024\315^]\253\322\317\1771\016\226,,2-2\336'\242*-\237J\313\313\013\265\354\264k\020\357\0252o\335\303VGEe\243\242:\241\262CUL\237\212I\206\312Ww+o\237\026\215;]5\3369\204\305\036\246\347\265\351\261\221]\212G>\3159\324\367]{\013\231\237\366\273vn\375\250\365\030~\271j\353b\231\257\333T\265\313""\231\005\277\252\267[\354\243\253\353b\213[\364[0\354H\327\363\365\377\344\307h\375^c\353\271\262\333\227\253\276plo\375\326\372\367:T\251\374\357\177l\353\257\331\377Vk1X{R<\267\332\007z\313\302y\303\311\262BL\367\365\360'g\032\227rf\253\356D.;\037\237Y\276_h\261\267C+\006\252\340k\337Ywv\360\342\357\303\236i\353\272u\245\031\347\332\002\335\246\244I9\207\236\207Y,f\017\003\303\t\332\274\230\275\n\267\035\375\275\353\207o\235\355j+\313O7\327\013\037\346\037\366n\374f^\327\325V\217\331,\037V\355\326\241\r\024\257\263z=}^^\366\277\256?\207\033t\317\357\207\256o!{\327\347\271=\037\037\277!\375S\251C\227\212!\311\024J\316\331\302s\346\264\2337\304\241\207\326\016\247i\273\365\217\346\226\337N\177{\336\223\276\256-\\\247\\\315p\360\273\262o\355\236\217\236\363VlcV\226\334\243\213\351\276\277u\225\335\3556;\325\340\367\272z\326!\016]\225\365\371\316_|c\376\027j\255e\376\271O\357i\237\323\347=\007\365o\037\237\355}\253\365\037\316\255\374@\237m\366\264 \316\031W \177=k\346\337\266\266\344\365w\271\275\267\257u\224H\235\354J$\016)\034\272Dry\331\267\316\300I\357\233n\3703j\345u\357\324Q\026\031c\333J\241d\212e\303\213\213\244\324\364}&\031\227\356\214\265|\327\375\244\336\370\252\336\223m\355\357\335\252\277\272\245v\035b\325\311u\242y]\275\327\255g\235t\235\225\270\325U3\236\364\265\263\246\325_u}\t\244\032\212H\272\275\234\330Zn.\023<\032\010\027\273\0341%f \021\320\003\345F\220\211\201\225\255c\311\245p\245[\007\006\013B\006\004\021\021\372\301\251\270}\260\241\330H\342\201Z\204\006\271\037\361BM\202In\301I.\247\246\2421 \311\235\324F\264\016)[\216\032\201Z\004\222\034J\255\003\315C\020\202\002C'\266\221x\"r\250\241\324(\030\010)\020$uC\271YQ\003\356\347\326A\216\222$U\022\242!HJ\356\344\226\032\031sn\033TF\026\224\037)Rc\n\302\010adL\005!\030\311\211\364H\331X&\214\023\306\t#\243\310-F,\325Nj6A$\242$\311\375\324dj\025\020\214\010\n\344Dn\250\221\361Cn\250gH\010\r\2312\314\272!\250+\275uE\352]78\351g\177i\r\362\013\267\317\220H+\322b\214c\023Boe\315\220\2209CJ+\362\206""\033\224\"B\250Ttk\235\371\"\273\025\017\263\303$\341\250T!\245\225\031\016I\245\222W\317\327\241\016\177;\005C0\014\361\236S\317\364\246\377y\325>\320\306V\317I_g\035\316)\3739\347\017\3137\320\337\360\013\365\234\025to\312l\316 \006\265\203sf\234\3477\347\324\027\274\033\337\271e\261\247\227\312\350\2743\227\376\364\327\274\357O\234\337\206\023\3649\357|\326\314?\231\1770}\353dU\013\233\032\246k\235`8\247\376\351\265NZY\031\267f\353\263~\r\342Lol>\235s\346\324{k\261\247\255\007\363\234\365\337\357\272\3375\347\326\331m\310\362\355\3717\275\351\345\247\376\031\234\236'\333\357Moz\323k\205\254\311\322\177\353\016q\306\336\tW\357\316\264k\327\372\357\277\205Mz\035\364o\352\373\323Z\247\016\343\305\215\207\326v\361\325\014\363\231\035\020\254\026\214=ln\025:[\207\006G\306\316l\321b5w\\\340\334\240\23034;-X\340\340\270\320\241\227\346\206;%Z\344\314\326\267\330\262\277\231\262\031\2550^\373\206:\316L\315\215\315|y{\005\250\3630\267\251\2518\005\016\nzQ\350j=<Ss\035\324i\201w\275\256\347\353\n\203\206f\006\366\017\243\305b\3463\323\204\216\315l\201C3\303\342\013u\246\2567\374\226\353\251]FF\227X\241\210a\354\3159\347\234'\235\271_\227<\177\336$\031\037\037\375^\211$g\231\346X\007\363\252O\357\324\262\257g6\314z\224K\037^R%\017\033P%\016)\227\027K\222\262\0318[\264\307h\330\034\3156\370\275\r\336\211\241\267\302dGi\025\235@\274\272\321\250\345\271^W\372^H\335s\251\237\272\r=\372\332kL\210\230N\216F_\"\211D\310n\204\352\342\215]#\325uAoU\241R\335\030\276\260\353\242\365-j\256\213\023\030\352\327\316\354V:O\372\265\313\265~\357X0/]\252\347%\305C\222\221d-\032N/?X\352N\256\323\223\276=\272/\344\t\003\271\360lGqbU{\212\261\030\203s\226\361\367\337\311\233N\251\373\370\370\370\330\257\031\313\253o\225\267\352\320\353O/\316\273\3766\315X&I]\352\236\r/\335\206\236\036\027\236\t\333)u\244S\2114c\315S\214\376<\002\202\215xb\272\027\331\225z\\d\227\"\241N\252\231\020\245\036\024\214\354P.<\371c\372\372ht*u]\327\221\346T\211Ds\006\226N\340%\311\323\351\244\352d\333#M)j\321P^\257""\364?\251E=<:p\310\030\360\202\326Y\330\272Z\324L\026xW\375\267~T\322\307\033\324\0019\270\n7\033\021F7R\020\347\311x\303FC\266\200\304\200\216\000\004\226\205\306\300@\210\014\242@\350D\342@c0\222\203\t\201\300!\270\241\344\310Sa\254\200E\r#\016V\330>\210\036`\272\361\326.\204HH\331>\010&%h\001h\033Nl\260V\020\024\231\203\213q\333\000\203&\000\347b\274\360\304\022bk\004\003[\026\037\350\324,\270-\307V\"\312\010*;Dl\032FF\352\215\336\212\361\204\320t0\272\264\310\031sh,?B&\000\334\004y\211\035.\206\302\204\232\034(\"\216\021\224\334\007\024\0144\221\333\215\250\203\006adhh\236\324h8MFOP\311\010K\216\035'6\206T\265\027\255\240\004#\014h&mEAFS!\302\203F\200f22\264`dH\244\016\211\310V\004i9\375H \204\341\226b9\3012\322\340\031yv\306\017?^\350\270\251\260u\016\306\023\332\215\036\005\004\204\210\244\010\202\341BN\244G\001\027C9,?4\031\020N{!\2110\2442\200\246f\301@\010ID\004 Q\206\344\200\212Z\205\223\224\361G\374\301\215\250\265\224\260\307-\365c\202P\306\205\270m[\013\211\200\r\264\275\022'\344rNj\031\225sp\341B\010\035\270*\246\210$\271\004%C\030JB\032P\230\331%t\304\2306S\205QT\2434\010\006z\214\030\240\275\214%\033\025G<l\330RVB3\2471\307\266\243\346A%w\"$\"\264\3426r\343\031\322\240\222\313\021\2427\0319\021F\224\234\312\370s\0131\244\202\202\222B\031g\334\032\030\300\255p!X\306\0216\226\021\255\305h!r\"\342\314\014\031\243\214\235\021\306\017\024B\255\025\033\332\312\317\253v\241d,\211 \202\306\240@\356\200\201!\007z\020$\023\024\246p5l\246\332\004\035\332\216\032\003\001!+AV\267\220J{\340\342\233\335\036\014\261\344|\205d\310\206\312\306\242&\252\245D\004?1D\027\221\232\006\021V`(\347Vb\313\ry\267\224\033\035\320\001\367\202\300PNN\315\245\332 z\310\211\310h*\003h&\253\032\014\232\n\002\315\205R\340D\270\036\233K\335\271(h\rn\034l1\244\261T\022\362 \210I|\220S\31302Q\200cA\220\004%\261\033\001!{\033\200\"M\0100\334\210\2112b\2141dF\227Q\213\340<\214\306j\"\252\230F\034\nN\245r\301BM\315\r\306\014\030'8\0326\002B+#r\334\374\306\341\204\301h\"\347\307\352\307\n""\230\361\204\347\206\"Z\030W)\243\210P\001\334\n\023)\\\016\233\014\213\205\025N\303\370\262\200\2420\256\240J(\270\023\334\350&\001BJ\206\0218\307\211\030\2450!\246$\224\270\220\013\007\342f\302\226\262mq4D[\320\240FC\203\021\004Tc\"\210d$\267\n*\021 \322\303m\016 \330lj\025H*\214\024$\214\r\304\324\255\306\311x\"\264\2420R \225p\0372\324\324N\320\032\230\344\206\334\366\372\371\241A(\311y\001\232\t\003\032\207\223\333\310\200\370S{\260`\\P`\350\247\346\265\0015\035\232\203\224\241T\207Z\000\226\022\251\021\246bR\273\320\300$\327\200\301K\215\202\311\n\214\020\212\020Eq\3139.\007\347\272\201\270m\220 \212\2106h\017Ln\254r\372\025\224\240@,\310\203^\202\374\226\300\366\203\"\212PlC0\271Um\205\266\200dHGT)y\0213 \030Ir?\266\226\t F\243\311m\247\223\223\234\210\215D@\224(\266\025\321\2178\302\340\242\006\223\321\204$\227#\272j\027~hNK\261`<\241\321\3748\341p\330P%\253\027\342\212\226\242\225Tp\364\246`T\360\266\230\010#N\310\2419\350A`$\207Bs\021\264\n\022\235\210(!\343\317\355\202M\3046#\2464\030S\016j\022\n\014\271\030\303\031X \336\240A \311I\210\220\233\320 \027\001\302\311-\202\355F\rC\203\334\211\311\220\210\315Fm\007)\250\255\010*1\020r H\n\024\271U\217\037\233\nq%eL\251\241\235\030Z\331N\210)B\001\204H\224FX\355\202\333d\210*'\332\246b\303Q\303@\222+!\311\255\304\024\005\243\377\270\201\031)\330J#\343\217-\304\352\006\223a\3040z-\245%\350\300H\016\346%'\322ce#\0215\210\306\221\250\250\324\324(\322\034v\214F\000\000\002@\000c@\000@x\320lP\227L\226=\311\007\224c\014\214\217F\204&\301)X\006\243`\n\301\020\004M\000 \300\000\010\000D\006\250\006\000\000u\003\037\330d\231\004\375\342\327\276\331g\362\302\237\244e\326\301\031\215\377\240\262}\265<1:\305\375\316\223\315\341\350\326\252j\027\374J@\343[\315\267\221\214V\027\300\361\300Z2\01395\3276\276@\360\013\350\376\315\023Z\274z\016)\266\251\213\324\226\245\367>\207u\301\"\333V}JvC\244\360M5i\231\224\373*\021\302=\301\313~_\206\333\013\264i\000\300c\234\024\230@f\021`3\205([Y+\226\262\305\025/w\246,#$n1q%\320$\333""\370\236\257\356\222[$xF\022\215S\000\\\245-P\347\033QQ\257\317Ph\363\202\247a\224<O\201\256*\377B\206b\241\013[\225\215\022\322\256\200isl\224\352~X3\363(\027\320\334o\330@\033\264\3127\350\323d,o5\t\016\004<B\033\272\233\226\334\364\317\346\236`\322\332\372Z)\212\253\335\034\035\210\231\276\220\021wW\335M\334m\317\343\301'@(\325\234\234?\327\324\372\267.\251\346M\016\321[\3438\255\365\03377TV\304\377KPbj\270\270p\3441\332\371/{*]1R\006*\010\311?\235\203[qT\244\251pi\005@\311\306,\302\024\204UR\0166<\313\ro\320\252\371\374\3235I\273Ii\177Av\230\024\177\351\203\210\222\177\255i\241\304#\201\214G\371\254C\224mX5I\257Xd\256)\327\034I\177\324J\013!\337(\".\010 \275\326\222C\002\264\310\200~\037\350\215\215\253Zwf\320\244\022R`[\360F\336-QK]\257\336\253Z\252\032\340\r\026^\211G\306\303\233\301/\254&.&k~\245\254\3012\244\006\314\217\316\327\322c\251\324?\0379\225\325u\237\272*\321\373\336\227\221\0377(\235\242\367\352\300\305c^y\321L\007\376\361\241\332\342\351\033\005\032\277\270F!\363\266H\030V\340\013j\236\r\220\367\307kq\0056v\336\375\227\342\362\216Z\023YC\010M\236\006\374a\226G\223\307\363\221?\225[\006\265\006>\325\261\246\341\010\224R\375\264\216M\335\211\335\243oid\321\032\r\034\334y[\255,\301\305\324\277@Cd\364\2731r\300#\t@\337\0049\3123W\334\230+\017Nk\3652G\037=\321\204\332CB\224\027].u\245 \034f7\2502\322\030k\354`\253F\2659!K\003\016Q7xM\324\361\022#\214\331u\031^Dy1\240\314Q\360\220vC|\355\210\254\211\033#\207\020T\344\207\353\202I\312s\345\251\275\207'4\342\030\370\327\007\305\000\021~vo\0317\245\276o\332\305\245\363\325\230\0214\363g\342\202\031\033\200\200\206\246\345\304L\372\256\227VQ\026\225Z\347\247^\036*,\322\206\030^\241||7\343\203l\310\205\356\rAj`\211<x\316\2329\201T\215W\224v\341B\275\210\306\342\032\266\277\300\341\336v\"\000?\261\024\225M\307W?K^I\202\360\335Z,0\346\330\034\220Je\346\316\363\367z\344\034\256\215F\364z\034f\302\363\311\371\023\357\300\037R\357\001\212\032\223\272\261\375\204\2422\014\374\3733\266\032\374\301\345\303\364\251""\024\031}\327\037\032\235\010\034*\262\262\323\230z\033\006\205\016\016\311J\245N7\351\023u)i\000 S:\266,\341\300/Oj\212{\371?d\346\351\031\036mp\363\264.m\003\265D\263\233g\272\361^\036)\2543\n\362\362\206EF\346\005\364aG=\025-r1\376\266\014\270\365\027QO\241\216\3372\3564M\020\305\336d\277>\345\311\021\273\\e\370Oh8\223\177\006\337\307\365*\367\200vhMHe\324\006+%\255\326\034sA\225\215\262\3174E\377<j\264\310K\340\315\030B \220Z\370J\316= f\377*\2608<\177\245\341\307]\037\027\240\310\020\304\034\306(\317YEbh\222\264\246G\007`]\332\251\021\n\301J-\332\254\237G\333\345\221\277\010\314\236\305\237z\014F\324<\213.\243\036J/M\367\335u\245F\021\001\331\235g\236,\322\244\016\245\362\201)c[\035\332*\262\n\210x\025\344\204m\"\244U\217\343\315:/\3643\026n\250T\250|\003\004ZR\333\252]o<\373\367\273`\227\311F<B\361\037h\307b\315\304\345\357\245\014\201\334\223\254\237\250h\226b\252\204\002\365\333\277^\221\n\n;?\026\252+\030\331\212-\316\345\343*\"<\260I\363\202E\017\0103\017\231\316\354y\211\036\210\264e\363\361t*!\363\302\177\267\260W\263\220\356\316~12\373\302JA\213\371\023\2204\357\356g\210\375\247P\231\230m\376\220\236\2327\214\373\022\345\350(\263\343\326\247\374{\366!u\217\266\255\001\246?\342\321E\351\304\340*\001\240\240H\210\336\303$|\215\004\202F\000\324\312\333\223A)\342V\356\341z\306\320j;\226\317\177\016_\221\3632\034i\032H\2532\247\2032\375\252=\310c\270\276\241Y\014C3+\263+p\235\355\267j\352*\215\322&y\347\r\3509\036\300\252B\237\023.:\274\3122\273'\030\364R}\002C\005\215a^A\231\021.Arf\216o\266\335\324\214\304\256C%\\K\271\357\020Gt\324HQ6\220\034\\\327 EP\014\220-\252\034Vq\"[Q|\235\301af\227\313[\217\343u\020\302?\377\265S/\264\206\363\245\246\305\017\t\2107x\271\013\021`ds[L\2217\235\264\220I\307\230^\270\375\200\333\217g\344[+\302p \014\375&*ee\026\276=\350\303\307\302\343\233tFv}@+\014\345\nh\207?\357\304\001\376\341\206\324\314\\k\347#{=e\035\025\246\327\250H\024\260\216pS\355\004B6P\260y\2579\345:\211E\030a\215@)\017\360\217-\365\377\rt\000\323\245\325A""\257\320\373u-b0:[XG*\367+\003.pW\304\232\365\3023\250\325\364\364\250\215\235\232\033\335\211[i/\004+\226\t'r\217\023\027*[\247,\367\330\304\301\326@\202\271\275\372\002\246#!\357\232\030\226P\332\304\317\r\"Q\240\375\031uB\345Z\371\377\346[\033\241\235k\333c\240\\\250\350\221\272lh\322K`\326GQP\337\300\001\025\201\361\333\277\005\302i\241\303\351Eb\231\230$\262\021z\027\311@\364\304\305\247\306]\003\306\0037NXS\032\242\206d1\303\0018\266\321V&\252\274\253\261\322\366\204'C2\360K7\255\247o\222F\276\372\"\275\377\364\324F\362[\322\026 y)\323\362 \374E4\270,\354h(\252T\001\221\002>4S4\217\234\300\236\233\302\204\311]\363+\224\303\331\017]\337\276\216O\355\327\201&\274\"\260\266\222\036\376\327\317\021\375t\320\207\002S\315\252\260\362\014+]\265k\364Y\2443\356\277\026\246\362\334\325\200F\214\3472\274\036\253M\005@\375a/\007i\251\237JM\2220gxf\237\262\323\3416\227\315\275\342\r\320\207\365oG\013\247\276\"\375Rn\217\242\007\031W2>{\376\231\313,hJ\375\301Ou\214%x\276\312\2379\330;\271\202\242\365E\214\322\312e\212\374\250\262\342]\325\375\262\252\251\3341[\314\257ZI6s-\363z\331>a3\023\027\3501\214\037m\016\214Er+\003\016M\336\343\247Z\323\222\253f\326\034\365\325KT\276\031&\306\2348\237\020\346\240\210 \243\226\241\017\271Q9qs\335g\304D\204\253\032\224\023\3774d\245\304\371\250\276\3507\000l\026`\217\306\320#\266#\362\264\206\022\304\221>\253\305\266\016\354!\373\304,NY\252{'\002!\246\362\ti+\240\263\325\303\027!j\256\241GSNK?\331\003\370\307\225\354\036\336\360\320\363\254\226Ah\371i\244z\3222\235|\340\330#(\364\002\276\215\206\340\030\000X\326\344J:\345\320d\013U\325\243\267\013[%\274\256\364\361X\026\207#\302\010D\356C \342\370\270\206]\336Z*\317\211\213\262\205\024\245QV\237\333\353\250G\032\344\277\274\212\362\224k\340b\263t\231\374G\227\214\036\327\250a\255\336\254\372X\260*\200Q\003\243\3329\273\246\241\201N@\376\256\326\022\302\250\235\317B\032\210\2104\366\254\014\225\\U)&#\342fU\272\033\350\223\376\005\026\010\007:\241\245\233\037\022{z\377^\264}+\351?\371~""\317M\026:\024\006u\341\351\360$S\233\026\320\017u\346\257\256\346\331o0\3330\224\373O\007G\3562\001t\245W\216\354\361\240U\205\305\0321\267\364\364I\324\0314\327\024\267\360\303\324\233\007\237\277\360\375h\036\331\310\372\226\214\273\253$\237\244z\246\260\321\261\255\230\347\303\253\251%)[\204\320\016|\006e6hi\257[1c\3675\323Q]\215\252wk\204\205N\334o\344BT\315\274\177<\335\212^\331w\362\r\365\327\225X\273\317\002\273\010\370p:\373}\0131\235-\350`\321C\212\305\243\010>\241-\330\227\323N\266+`?\223E\255g@+Ex[\233\227\003\034\353\261X\036Xr%T<\257%$]\016:\020\010K\223\322\217\316\007\352S\370\201\345|\220\031\275\223\311{;+*\267\222\2562\027G\3149\254&s\215d\273 2\306M\"\326\271{\262\315\260\324`s\304\253Q\322\306(\256P\201Pg\363\017\242\331\250\000\373\210\345\362\262r\274\213N\213}'\315w6\207\276\244\364\207b\271M\351!~\220\324\241\310\240\335s\341\343i\242\372A\205j>\200A\240\340\354D(\237\263W\237\262I\326\361$\201\374\200\253\235\322\004\210\021\235\374\362\214c\224\237\326t\251\215r\324@t\322z{~\340\346\233\367PX\020\243@]\013\r\033\362\244s\202\327\0369\322\217>\266\325(v\202/\211\310N\205dt\242\3561\027\331\305t\317_\214\356\0102\227\275\335\247\205K\034\010\265\202\307jl\214\032{\244\336\326Z\310%\000\210e\327\200\264LC\210\333\275Z\027{j\315\032\200\237.c\346\347*\002\212\310\335\215\377f\302\320\365\234\234=HJq\262\021L\2410\214\350\257\363_E\271m\271\327Qa\220\220N\\0\220\256\0262\251E\273\024-\t0\277\343\010b\221St\022\263B\325m\2512]\325\245V\240+_\315\301\0358u\2612\252\267\177%(uv\203\253|\230\300E^\253Ut\242U\330\232j7\343eE3\330%\343h\002\330\346\375{\220\340\033\316\013`\242l\332\210\210\210'l\323\300\276*U\321\014\324C9,c\004|7F\347 \325\242O\3607\"G\375\2612\021\\\372+B-[\0324\3576\014\nS$\362 \227]\222x\357\206\352~\275\3473\031\265Y\277}$\212:I?\207P\367B\236v\256u\301r\031\371\230'\252\320\322\315f\263\275F;J\200\325\232\3373\224\013Y\0268\352^\3009\304wA\320\317\327i\304\326\276\351\332\266H\251X\262\350\301FE\312\212\003\226L\325?\242\346""\377\022m\036\2224\204\276u\333\026\257\372ukF\314\255n\332\027i\014o\211Z~~8\344yHt\336\357\007\244\346\007\020\363\353\357}1\016\255\332\354\020x\026O\352\005\371\350a\223\240\025\241\321\200\020\365\310\024e\345\243\032\021\031\255f)\262=\201B`\367T&\274\373\302\226\205\024e\321I\246\025\313\250\334\242\225\351\0142S\366\200\241 z\237@W\023\351\230\235\024\321\247$\235\256\371L\026\220`\001f\372\267\210\006\226\306\231bj\324\336\022\360d\226\340\370\257\335V+\323\010\210\353\005 \326D\257\271\250r\023\0305\343\205\304\200\251)\2004.\266Q@\031\177\0044<[@\261\320\221k\374`\\\r^\276\214\331\306LL>\376\333\367\010Zt}\236vU\021\275\340\324-\313C\221Rg\374\221\t\264\205\216(\037)\006\013\322\006s\222\004-\t30\346-T\210K'}^\206R\313\241\224\231\017\244\000\t<0+\250\021\252A\263^\227\231\024\177:\201\260@\247\333G\310\313\020#/<$Q\361\026!\211g\014\"n\377\003\366\275\205gd\310\001\320\035B\356\023\221\207\276\230\371X\213 \362\320/\324\032\003\026a\357\237\224`\251\340\014\007\212W\360>\016\321\035%#}\225l\303\r7\022\205\224\215\306\217\266\031vd\311t\323\323\274=\323=\2074\304<H\310\033.g/\256\242$\375\353\\`\031\217%\273[\022\354/\273j\007~\207P\373 \035\372h\376P\304\217!^:\t\363Wl\243\214\2600\271\220\342\320\317\3621\244\213pK#\366c\252X\3728!$2,\304\023!\261.\327\023\345\017\2255\307V\214;M\001wo\220\202\357D{\302\364\326\307\361\316\331\0261\354\351\020}\334\005A\256\354\225\037\367\356\2321\373\314HY\256|\203A#\247\257~\200H\333\000\331\266\270\377Hz\227\035:\237\235x\023\274\334\224\207f\211ls>\337\022\037|\253p4\026\350\335e6o\263\357g\n\340\r\213\250D:\250B+V:f\221\201U7\024S\312!4\210\203\257\003\003q\r\376P\206:\326m`lt7\306\3541}\033 r*n\337:'\323\250W\373u\236\2644\322t\n\324a\001\032\005!A\032e\026k\264\302\260\341\034\001+\267\211\304\370U$k\363\222\025\210:l\2029t\217\370\223?\301Uyk\031\262\337m\221\220\247\274vnnPn\333\357\2371N\211O\277\225\360s\335\222\355\335\257\274\220,`\224\371\315\274k\204X/\226Q\242\264T\003\304\224\006L\320\220\304\264\232""\241C\317\0311\371\027b\242\227\r;\226\204V\357R\314\320\366c\013\026\300\002\000\001\276\205\nX_\345\333\206\375\215!\257%\006\351r\2069\221\267/~\244\301\026\240\034Ww`\332\363 \003=`\333\335\336fx\3309\323K\177\001|\277\"\251Yf\335I\266%\017zi6\236\3112\270\271\023\0062\227\013\353\031b;\032(1\202\321;\311Q\223)\235\354\207\tP\203\026\014\354\353\300Oa\246\027\224\035O\330\351\330\357\233@@ha\220\t\204\337h\000\r_\3323\334\023\177\363\245\37495\201z\330*\017\242\247a\363\000\241\303\331\364ANz\362zo\010k\232y\356`K\334\320}(\026\373\257\n-\203a\302\r\220\020\307a\274\230\312\n\033\227\225M\215\310L\365\017\372i\216e\231v\230\345T\212\366\244X\r\351\320?:\237\370\274H\323\354\233\302N\224;\301\326\354\317\333\261\210M('lTi\265\216\223;\236\240\216\016\2105&5\204C\003\231\303\260 \327\226\257;\226F\372\202dh\226\221\354dI\262\t\274l\257U\346\223\340\222$\006\247\362\014\003\020\372 3\322\372\320\221\221e\337\354\037|\211E\231\275\034\241 \247\345\354\311\336\364zY\311\303\226V\374HR\360\340\250/\215\032\020\205e4\256\3514pb\262\215\014^\037_\300\016\351THl\355\271\236\330\017>\337\241\277\231\315%'~\\\341\371T\237\370\263\034R\226q\235x\311N\203\312\266\314\000I\242d\371\2653\230\343n\033\246\204\233\202\275{+\355\204c\201M^7\267\016\307\013\374\2444\375\322T\036\325\334\302\251#@W\033\241\316j\032\256\303\"\022[&\344\025~\223\362\035\031\3236\346\247)\302\300i\367*T\000\276\"H\021\014\266B\266\321\202W\266\271\373\312v\270\321\375X}g\332:\376\330\325\245@\323s$X\347\376\001}7\r\262\271N\321E\263e\201)\331H\200\025\243\003\310\310 \200\332\031u|\004=y\312\363q\226\\\321ic8@\306\350Y\244\0333\r\313ux\004\275\301D\365\0346\264SJ\204W\276}\003\224\010\215\300\246ys3D\302\327\365\020\240\270\340\203\205\260/\333\030\225\255\201\003+\t\352&\031\001\271\341-\262A\270\334\315K\214\035]\311s\023I\320\253\260\362\237\317\367\332\303\362\267UD\215lK\274\312\225\034)~\235\304\316\234\236\007D\000\r\346>#zw\274I\253\374\301$D\363c\241*#\301w\2552\261\017$i\304 \237V\0037v\003""\352\262\225\367L6\251\322\367\020\"\3642\371S\000o\214\305\206D\331\350\311\002\027\371\002\355,TH\240\305\177n\350\r5\353L\203q\224\231\374#\346B1\236\256\025a\377\331\301\306\206E\377\027U\024\322c\n\242\375\037}|\001\320j\236t\377\266c\267\0036u\251\313\303v1\332\272\315X\016U'\036\222rm\210\302\254\252\272\005T\337\360\031\325\370\0021S\276m\3250H\257j\233=\254\207z{\353\030>4\025\266\367)F,<\340\226\367$p\223\202\335\020\010\001b[n\247\353\352\035\205\336\202)l\303\034\363\033\347D \202\007|\205v\021\232;\000\215\272\307\337[\326gp\352\251W\026\331\034\000\346\226z\2735\267F{|\272\221\375\353\336\0175@\2654\264\375\";\177\217\317\221\345\216\354\246\tl\177{\275\373\311\014\343\021\265\243\013(v\240\202\200\325dd\311*\027b\214&W\235W*7\251xLcg:$*(\n\312F\272\035{l\2502\233\232\206\027\035\323\347\253\235\255\314\303i\317'P\003D?\340\036-\210L\370\235>O\223.}\354\310~\002QI\237'\023<\337E\255\217T \301\3369;\234c\237y\223?s\"\002\236\273?\301\262\212\207#\03531\\\230\034\004\205\276\267\301t\334!vf\3647\230dI\235=+\347F\004\366\366HX\356\265\3675\334\302l\225\035\017\205\245]+[/\313#:\375\257g\035\303\373\353\311?\276>;\005G\243\024\204/~@\326\tu\361\240\314\033\303\257\203V\021t\312Q\033\244\262u\237\334\224\364\270\037{\340n\376\3403[=\353\336\317:u=Q\262\251\305\330bI,\200#\031&\020\3320\004g\010\241\276\210\350AYP\257\2606\005\363\263SX\252_P\364\n\262\256\302y\220\226\227\212\037\314!\217\367_\\\366\344i\273\271-\272s\030P\235\000>\363\263\3611\nx\\:\316\005\256\302\257\213\311\032\312e\\FYu\003\314Q\221\004\243\311\2243\362N\035\233\037U/4\031\371\227\353\331\226\306\325\033\242\253`\030Pu\211)\357\365\023\233\206\024\274G\215a\350L$\363\327M\276\206\224\317\357\302\217\032=%\277\006F\377\246\371ap\270\025e\247\2218\314\317\301\353\352\363\007\353\270\252\020\234\205\234\375\230\276\223\262\\fL\223\001\300kL\366n\266\331\307@\270\316\216\3733)\014\307Gm|\350\262\220\335k\024\246b\2557}\370\201\203\351\203D\342\244\013\014\213\346\034\037\234x\350\355\314$""\253\325\2644\0226\0001\315\036|\262]\252\027\005\245\327\020\026\364\346\262gd\360M\005\214\334*\032d*\035\203s\225}uq\274\326\362mjY\031\033\251\2524Y\021\265\231l\004\235\353\013\301\224\242\007\177\276\341c\032\215\231\305\364${DDYp\0018\233\216p;\263#\276\373\002\252\320\344Mmi-t\261\n\267\270\230\214\221\332\316\003s\010\370\317\307\002d[\375\276Q_]O,p}z\255\204\252\3131,J\364%P\030(\373\353L@C\253\024a\205_\027\330\254\210[\373n\355\224f|\342\"@\021\223\352)\r\007>\373\263\350\316zL\270>\275\3134\027\262\231\007\027\327!\023\270\323{D{\261L7`U\237\235\263yV\216E\236H$I\013\261\337\224\214\002\324\373Bp\324k\275-}+\334-+\n[\355\031\233\373\226\002\225\266.\351\242T\301\366\375\351\256v#\220\356\356s\"\345\276\245\265\024\203'Q\032\037\n\225\346\376\304\253r\024\312N\222\030\215\027Y\254\354Y 1\201\266OG\3602\343\2310\021=\256lEj\334\266\336\023\327nr\214\\\301\276{\301W\335\0248s7\217\304\310\021\271:\370\2031\263 \033\033\213\t\203\022@\213G\276\001\2451e\203\261\013\030\261VA\255\301\031nI\tds\307\207\362\265\356-\353\345{\272\225d\002c\223\r\226\025mi\030\250\314=\273\016\376\360\"X\236o\305\353(\341\237\023\241\235\223Q\335;[l\222]\273t\261\351+-:\212\341|\331\371\301\330Y\214\332\245\355\030C\272X\n\274\204\300:Dx\322\347\355\364\222\"\031K\214\267\0015S8\244\025\001\237g\201{\307L\0217\332{\345\214\306\005\233M\214\036\363\275b\351\355\200\367\324\244\222&\257\231L\206\254\247-?\217\230\340 \364\357\215\270\024\031U\331\303\361\270Fx\274\251x\312\201R\220C\232jrB\3269[\0331\220\002.\314\267\233\231\334\345.\300W)\263\005\301\236u\023b\006\211\362\004\333\237\277t\320\376P\004\212\014\235Z\376$\036\2725I\212HnLX\n\321\2776\252\325\307 \224|\273\305\330\352\216\351\003A\210'\nY\277\233l\025\213AH\0241A\231Ym\000GF\257;\265\263\\\034>^nU\370\305\240\2135d\233\262\377\177W\327+\371\347\022\";&\364\253<\263B\016\342\200m\001>iP\002\266\224\0354\333]\373\362\310=4\270\364\005\242@\237\361'\363%\265c\2050\274\2778b\243\237\024$UIL\250f\212^\020\203^\305\030""\244\2211_\367+\r\257\025\260\224{18\033\237Aw\210\2443)a\324\303\n\312\312\354\357u\035\260\223\003S\367$b?\r d\270\246iJ\201uwv\314F\000\267\202\001\204\031\205\303\200\020\356\312\020gL\000\360\203\221\333P\026\372^\177w\216\034\302\r\2060\335\201\355\336X\370\303\363\360\034\310\002K\236\276\211\014.\305)a\355a\237\027\305\243nb\223\262i\376bz\3365\214\26681\200\363\017\032\301@X\330d#\311\316\025G\247\361\220\230\347\333\304\326\216\013\232\213R\331\2250\355\245V\314\326h_\214\255\365\3118t\216\371\027/\007\262\312 U\217\021\223\205\253H\217'j\303n\232\376g\031X&W\021\337\0058\242\200\005%Gow\352\347J\204\340\321*\357\256<\177\203\347\254x\354\305\247\352\252\313K\201\376e\364y\342Q{\331\003s\007\220m\3474\342\270\233\264I\231\234\271\237W8s\272\2102\204\311iQw\214\256\3117\007\014\211\303\361\364\316h_n}\004\257\352V\003\202\017}\220\003s\005u\373\030*\250*g{;\000\003\300,\344\315,c\212\243K\346\256\256U1\3652A\335K\0348=\000g\005\244&\374-0\364\310\037$\003\007\036\335A\323N\370\000\335\t\343\231kS1^\3519\"L\234\230]\2122\371\261 \363\241^\340e\267\254I\224z\375\335\374I\337\271\267\217pY\266\014\207\321\361[jl\361W:\222a\275!\320v\361\267C\227^\276m\367.\001in\371m=e\241b\265r\214\342\366\257LL(\347\341z\026iY{\276\363\324\210-\027\267\014\244=\306\360!\261j\203\370\363\343x\377\361$\227\312\372e\242X\261w\002\030\232_\376\340\320\352\214[\274\311\026\266e\253\323y\316:.\361\364\253\374\351#Btb\315\021\243\001\251=\330\244,\224\020\251\253\237\343]]8\314\344\302~\205\345\235\272\254\313\203l\367[\013\361\231R\333\255c{\307\3758E\256\"\273\030i\354\023\373\234\255\0130\227\222\023\310?\330>\345\304\003\310\223/\233\004\235\234\2358\204\3145\224\237\236\255p\261\326\205\202\004\030\221r\021\313\362\231\321\2446\242\345\326\250\320\277b\360@\017\261c\222\207Lyr\312\266X\024t\343b@V\004\037\245Fl/\214\366\010\241\033\225\263t-\200J\212 \005\313\260\035\270\237\271\253i\031\251L=\324\240[1\266\031\255r\007\033\r\321\\?L\235L\222\200(:uB\004\tB\321\230\215\3038""\025\202<*\361\t\235\232\200@\253\351\002t\216\226\35140\305`\260\350\277\177\n\206\007>zcGO\355\344*\323\272\300u\000\351c\323\201\204Z\263\273\277\340\201S\323\303Sc9\343)\327\224\351\347\315K\034E\255b\230q\340\206\034\3316\034<^\031A\336XW\251\r)Pp\0100Q\200&\210I\333-mV\306\227\374\322\353W\250\217\227D\351\"\336\031\200\312\241\024fC\370\"\200\022\034\244\251\335\007\000\035\241\3620\242\014\335c\207=\314\344AJS:@\231\004\245\265\322'\021S\361\024T\330\213\020\3163\234\303M8\202T\221\016\245\355N/\301\300M\252\357\345\265\205.z\000\206g`\247\340A\371\334l\224</\301\r\205\212&\373\332~ni\2221m\177\202/\262V\250\314\005ISHB\201\037\354\212\266\002:$\333\310\275\036Y!b\020\360\202\237\305\230\247\326zq\356\207\032\010\227\027LZ\335?\002\264\236\201\241M\370p\001\007oa`\241\236'6\333\205!\253\264\255@\346\275\001\376(8\220E*gM\270\340T\364\262\203)\250\3458\307\360|\340\231\233|X\014\376\336\303\340\006\323\302\302\020b-b\025\343\001]?\301\215\371T\332.\275\252\307\377\026o\206\305\021x$\203A\177X\353K\027\"\270+\323\372wn3?\342\353z\366\n\334.\010\010\310q\214\\PQ\247N9\217o^6n\276\321ZH%\032\213\337\340\207\"\345\002\320d\350\276bs\303\307\rq\010\213\232\361\257\322V\303\351\366\330\035\325\220\336\347s\010z\036\212]\"\360\340ar\275\263\205w~\3746\264\306\267O3c(l\306\026)\016\340yp\007\251\211lP\372\375\250\210\020c\340\236\375\236l\343<\366\252\001\343rj\332\3656j\264\265\270P\231\351\302k\331\304\027U<\315\001\346\233\022\221\035\307\376\3137\270\215\360\014\317\202\347\326B,Y\214\214e\037\"\277S\311\342\370\000BI;eq%\216n8A\265\360\224\367\005n2\205y\262\215cc\010p\033\010H\240\213\3775A~~\223\273c)\255\246\225\255\036\3200\201\253\261\253\357\017\353\000\333\275\325\352\215\254IH\317\260\363\020Y\207\017\037A\247\216/(\201\256\014\304\024}\267\031F\334\233'aH\216O\300\233\336\236o\355\340\035\370\371\t\226{\365\335\354\205%\231\376B\253\366*u\301\224\2535@\321{4N-2(.\017oF9\370\2513U\272\347\206\267\0052E\023\252\\\320\200Jq>\2318\2674\242\210\0079\025\301C"")\315\007\336\323d\232\366\003\027HP\347a{\344\366\360\345-\354\206\251\213i\270A\324\304\006e\240y\376\326\273T/n\026\313 s\317\277\274\332(\215\367\201-\335\220\217\321m\234e(\r\325\221\235\330k=\032\346\n\3514/<\025\272\373\301;\274i\n:\005\344P\017\354\220\270\032U<\225!=\252\257\035\341\3345\333\225\357\032\2111\263\030H\202b\251\376\272G\201\223a\276W\274F\023\345\330Uf$SF=:l\r[\205\344\317\314\003\177\360\224\341\333\t\230$H\321\375:\217]\237}\021\206\244\215I\357\332\302(\220\355}q\023\222\221t\250\005\263H\205\340\244M7\244\201:(`\310\273\216\341\226U\234\027\021\221\367\341\210r\203\242J\214'-0#\245\357Ak\260\207\242\346\036;\313'\252\246\364W\010\212Y\241\311X\014\212[\247if\222\\7OX\026\247X\256#+d\213~\313\017s\322\276\265e0\323\035\\\022\273\232\353\0013\233\233\331\210\2511\364]\216\\\231kv\365\373\313\326\241\2306\274^\200\276\016%=Z\300\355\270\310\002\266yA\315\267a\232\t\232\210\221\302\356\273\341\022EL\223\303$F\212#@*\235y\216\302\266'<E\226c\332\221\304B7z\036]\336\211\235T\310\221\3065l\202\224\342\002\316\034\020\377\n\367z\376\255o\005\276\325\025\252 \331\244!i\300\003\310\004\263\316\246Du\331\303\225\314\252\256\365\234<\324=\345\214i\"q\354\027\223\335\202\327\361\262w\024\210Yh,5i\320\021\223\274\250\"\227\273\tm\366g5\355W\353>\235\264\320w\252#W,\241\033\231\233\302o\302\3109\206\014\200\024\205\250\200=LIL\204\030\372\016\310\221\275\356\362\021P\370\215\276\307\250}\272^\214\024\204k\377\256X\333\256\356/\014A4\024\002\r\221\036\303i \352U\331\0327O\345\224P-F\200U\352\n\n\345W,\n\221\246\2613z\007\337+\254\263z\037\310\375}T\325\004\033^\235\251XI]\355;\342\306\276\225\376\352\002\247+{$\215\304\013\322\002\265_\377\373:T\320\340\003\241(K\210Io\231\315hr\365Ha;\207\236z\220\262\251\371_\302\345Bq3\245\177\265\303aQ\t\032\241\337I\341lD\032,\305\207\305\273\211\260\020\215\003G\266\260J\325\301\0223\203\0354\006\017\201\276v\303\215\002\264O\261JA\256~\346\310\021\321\2741\324\276\336\330\316\005\216B\"J\315z<\017\221Q\275\t\310W""\r\377\333\216\t\205\301aJ&\274\024I\305\352\32655\355\314K\325?\311\331\302?\225\374Mq\355\206\016\356@\320\277\224\313\034\251\256\236\245\225\242v\306\330\260\376|\354\252i\242Nih\241\255\216r\006H\241s\340\264\204\237\202\217\354\234\264\240\026\363Z>\304x\030\222\273m\330\375>\206G{5*\005\353Z\357\213\240\001\2659e\356\2165\246\210$\n\236\221N\305t\203\233u\032\220,\371\273\001\266~u'!\347\317\226\221\t\211\033\270\270\315\263\025HM\361\304\272(8(\304\333\301\355\264$8~\276z\003\367\r\364\3118\"\334QW0)\316\263\253\306d|#%\306Z\335A\340E\257>\267\241\205\002\207\233\304\315\253>\030\316\313\223@\367\236\362\340\375\242\316:\r\374\240\003\313\3244\205\214\255\"E\021\221\007)Z\234\216\032J1s'\333\036\234\346B\241L\335\344\254\010 \010\"\226\350\361%,\3002N\027\234\217\265D\263\313\272=\032'\357\017H~qD\r\363\024\333\225\002T\362\353\177\250v\277\333o\320U\322\327\206\313\334\333\243\215\325Q\031U\354]d\211\246E\215\362SP\037\026g\022\246O\274\026\202\207\245\000RMA\242HQ\303\230\324\324\302[\033\376\225 \013\006)Q|Q\250\037\022C\365\303c\364\274F\315q\002\270\014;ZWz\244Rm\003\222Gzh\213\246\246X3\327t\327\"u<8M\0055eH\317'\005\356\274P\352\375^C,\263v&\020Q\222\337\267\357\233\306\2606\0373\224r#\337q\237\004\305\0234\360\356\237\364\270\277\356\306\331\372m2\3438\362-\375C\335}\335\367\300\312n!v\355IM\003\274\214I!\2136\036i\001\270\301\337 \217\351\000y\236AC\377\210\n\302\253\307\237Xx\205\256\225\177\376YG\242\030=\216\275z\nxX$q\234\345;\251c\202\t\216k\317Bk` cL-\367<^\205\240\022\262s\214/\032O\255\021\022_\207K\354P\212%M&\320bl\263*\2504^\377\357wCB\253d\205p\223\315\360p\350\014\210\211\363\247/j\315\357[\324\001}]\317\027![AX\3742y\347\257\314\343\310\366m2\242kZB\370?\270\357\264\376\240\013Z\363;\002\037bb\312\260<\r\364\224\323\240T\200\022.Lj\214q\034\026\345\245\315\2427\234\220`\t\255,\331\336\307\27353\307\375\031%\235\263\340\020S8\272\272\336\265#6\255\330\266N\302d\360\010<\2269At\243\354\222;\334F\215\004\033\000\227%E\340\242]\275\034""\"\000\205g\007\001!a\371\317:\200\270\243\364\274cP\263Al\007\331\310_-\202\030x\0033G74\034\257\035\326m3\r\226Y\244\242\320@\334\204\031XH\351\331p\025\216\016[\300\340\322\304\372\361\330dV\307\277\323\224\330\224\251\363\353\014m\002\371\264v\033`\026z\251\203\333rz6\366\301\225\255V\362\026\326\243\002\036\331$*9\244\026\034\307\016\033\357f\325\226\000\343\016\235#\256\350aNS\320\200%\203-\261@\2551\343\321r\025T\332\243\220\240j\000\030\344\313\016o\236\014YT8+n\302\005\004\tL\214\3522y@\303\037\352U+Wa\346\316D\261T_\014\21494j\357~\313\017\325\360\321\013k\272a\221\264\2706\361\003{n\226\346\026\376\\\265\256\201:z8\246\351\021h\002vi\005\242:\226\226\005\266\236\251O8\267\262h*\353\377jsj\345\365\373\210(U\341\034\330\306\026T5\"6\231\205\001\354\014\211do\232W\235\3660\245H\203\262N\204F]X\316\371X\214\013qG[\232E\312K\314\365\277I\033\333\tc4\003g\026X\316\007\325\223\300RM\005a\351Z\031i\"\010\005\262\316\027\223\320\224\027\333\223\004\232\344\317\343\036\213\334\254\313\0009\022\257W\003\002\231\241\303\007\367.\253\305T+H\350\353\243\343@\212\360\306\027\t\321\n\003\241\276G\030 \t=d\020\021\0011`\001g\216\350\305o\363]\244\267\177\373\n\262\014q\200\220\325\357o\317?J>\022\336\372\022\332\023\316%\023?\360U\272\217Sz\034n\360\246.h\006\021G=\361\334\371\366\307\23208\200g\271`[\023L\335\242)\023X\2178\001\255\256\316\230\353\237\240:\333\343\335\307P\376\020%\274z;\030wO8\330HT\221\034\214\n\325\036\336\277\017p\016\337\374L,\370{\203\313\261B(\263B\335j\330\030\301\226_:\245\350\310$\363\n\260\364\266\233\026\034f\214\243-j\254El\\\334\354\372\303\265$\353E\207\026\231#a\250\332\364\365\370\022\333\264\005N\360_\357+\253F\310r\220krj\017\351\200\273p\364\205\373\240\225LK\327b\177\\Pm&\2006\007\333\225\220\n\217\334\361\327\230\340\334\246\263\272!HepzF\022\004\301W\310$d}\316\350\206\300E!\271F\0148\212\355\353\220xbe\016\227R\246=\304\207\356q\026nVWf\322\351\252\254\326\311\264e\360\244+\372b\206\246\223\315l\020\224\357}%\036\300\316\ns\005""\242\254\364\\\214\272}\343!H\343\"\001uu\360\344hrpX&\311\311lX\005\005\311\322\030\252\270\315\357\333\341&K,\347\344\3540\304\301\213V\346\2052\342\267\361\n9n\r&6\354\321\303\275\251P\240f\030gH\243t;\327\223\336?0\351\272|\372Y\355G\350#\366F|\342\240\331c-\023\277\200\033K\325\376Za\2641A\030X\331?X\224\302\210\316\313\232\r\027\220\204b_\236 Yl\377\317T\254KB\000\002\022$\253\374\271\003\332\004>Z,0n\344\t\252\2666O\032\032b>w\316w\237\255b\244\224gD\324\274w[\001o#\272\2451Q\222\254\024.t\003\0334;\004\206\024n)\306\001\244~\333\202\010\\\372\345\300q\316\227\000\307\226Iw\335\000\32693\001\236\177B\025D\357m\332>\317#0\010\260\205<3\250v\346\325\350\274n\367\341\324>-+]\017\242\301\241C\305\345O\341\270\337\274-6\315Q\340\244EW\315f\327\252%\334\263\336\304\035?Rh\364\320?\265S\342K\016\243\325`R\245h\260'\213\302\036\211\274\322J\201-\226p9\223\330\240\t\3145@\333\302\333:\\\034\035\365 d\321\375\325\266\203\311M\244\253~\021\272dtO\334\211\337!)\014\327T\025\001<$:$\224\372S\013o\266\370\275%)\205,\362\311\003\255v\227\206\241\374\025\324\320\241\346y\031\336\240\240\342\305_C\236\362\337\367\022\243\355\246*6\220O\336\202$#\023'\226\364\260\304\330\331\203\200\304/mE\270\371\010\007\024\303\354{\314\3104f(\205\332\035\325\204\326Jc\016\272y\265\355\216\013\252%\376\253o\323\371\327\260_\r\217o\247\324\002\014r\221>\004\234\254N\357\335\321\252\260\315u\213l\340\206>\177(\021\014\252\352\341h|ux\225\212\2721\256U\242\200\326\0237\361\252\350~\242\222\330\211\324\350\244\364s&\330v\250>/\261\213\\\007\223k\233}C\251\363\212\342\360j\206u`\000\217\254\327\325I\352\325\236a+8\350\020\345\374\266\354l\000)Q\265m/\213\022M\265>\251\341<\370Ssn\311\247c\021\224\226\311\371\205\267J3`n3\326E~o\026\264=3Wv\327)O\267\355\202\354w\017\267\273h\215\2577L\036\220\251\303M\2734\014;V\010\355\036\357\345\200\324\341\246\020\244\3428^\027\271\254\025*4G\323\033\204\010\t/\340\217\005\035\245\310L\037#\355\206\247i~\0134&14\242\327\301\336\235\202\375\227\351\264\333S""\016\337\2168Y\347\nT\022Z\317T)\250\346\364v|\001\3076\014JU\206\020*w\025\004E\2710f\345\315\001\014\377\342A#\366(H[R\005\035u\261k\364<\031\016\200_\024\006\031M\214T\253\3401\226\n}\351)\325\217\334\001\363\220b{Z\203\374xm\206o9%|\016\002\311\0074\265\005\352\233x\002\374\206\315\252+B1\377\007z0\353a\020Z\201\r \333\366_\t\366\256L\366UV%\330\310\360\216\n\313\306\217{:xR\2570\301\350\361\265u<\325]F\013\026C\355|\036\345\257\360c\321 \0109\022T\256^\304m\275rX'\246\n\363\204\r\233\027\365\224<\305\273\274\376\203p\337\372\001";
    PyObject *data = __Pyx_DecompressString(cstring, 14097, 3);
    if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
    const char* const bytes = __Pyx_PyBytes_AsString(data);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
    #endif
    #elif (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (14011 bytes) */
const char* const cstring = "BZh91AY&SY\271\202&9\000\030X\177\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@`@@@@@@@@P\000@\000`D\217;\263\357\233\353\353\317\215\206\007\273\316\352\336\340\024P\243\220\000\000\005\311\275\200\036\354{\007\247\n\035\006Jzi\002\335\337{o\276\360}\3407\300\007\266{\267\331G\323J\353\304\337}\337^{=|\247\265Ov\000\003\304\373\354TR6\302[\326\3531\352C#\357\031\342\322\272{\337wo\235\367}\317\010\207-\222\262z\367\265}v\332\365_m\275\257\263\252\370\373\274\342\276\373\274n\217[\200\014\213{\035@h\310w[\335\340\347\331\367\333=\275\333v{|\356\267__T\024D\020\245\312\010H\222\004\031\001O!\240Si\223\023M0\223\023\004\300\236\244\315M\2414\364\030M&\247\2644\247\206\251\355)\355I\350\232bz\203i\000\221\010\020\"\020\032\204\364h\246&\324\315)\2656\247\243\3254\323G\242=M\003#2\200\000\032\032\000\320h=A\240\000HDIL\241\221\202\t\223'\2240\3212=OS\321\201\224\364\020jhi\232&i\244\364\023j0\200\311\246\217Q\243M\223\322\206\202OU$\202\221\344\247\244\375(\3654z\2324\000=\023C\004d1\0004\003\021\204\000\032\032\032h\311\204di\220d\301\022E\032L\247\223L\246\325Oi=\244S\3653\0254\365=\2516)\220\323\312h<Q\243@=@\000\320\017P\320\006\215\000\006\206\200\211!\002\001\rL\230\204\320j4\231\251\352\233O\001I\352z\217\024\003\324z@\001\210d\032\0004\310h\006\200\001\224gm\333\2418\273\257D\023\016l\263g\231H\343\317N\323\222B\\\272\252\265\265h?M\301\324H\250\037A\" 6H/\346\257R\302T}H\237k\323\244\250\213x,\202\007\347\303\357\342\257\311-\2060\204BDp\030\222\017\217\307\372)#W\253\352R\354\033c\037\373_H\273\000}@\260\215\265\221\225R\373\032f6\246/\217\375L\274Vj\256\3139-\021.\325/1gY\014\265N\213\230\2345\351\370\367\272\t\320\312a\377\027\330!\017$(Z\204\201$\220!\3045\000d\300\010Z-H\244\222\002\254\200\"h\317\330S-\273?\370\r\201[\357\027\0354\314\034a1~\323A\336\001\302\021 H2TclZ\010\321\033Q\265\032\311\266\n\213\030Be\370\267\216\267\207\177w\223j\357]\335\336?\201cq=\020G\311\376\364\225\005\371\304NXH\017\264\212\234\222\320\037\322""\365\315o\370e;ST\000\026\227um-\237e3\362L]\323\343\223D\206\246_\331B\324?\254<\260\304\343\306\301\307\272\272\3118@Z\005c]\033\005\314^/\237\311\257\"\367\036G\351\356\354\303\214c7\3563\334\202\2108L \372\363\267\314\261\2464\234 \311\\\026\260\305\313\002\226\020\342\224\342\211ZcR@\327\246\305\211\352\207\372\372H&\356fD\353\276\333\355z\375\350\357x\271\003\345\0278\007\365\253*\361\310\302P\356\244\304a HD\272Z^\347\321\364g\223\274\310\255\014\261\342\365\0372\266\313&m\375B\t\246\257bJZ\302\275z\245+2\345I\005\242\222c\344\262\227PB\2041+A\337\303\257\034W\343\363),\302\271\204\361\316vS\341\370\311\366ik\212\377\213\364h\340\223\311\271\277\375\n2>\374Lt\231w\315\367\342%\230k:\311\332;>\217\232\241p\347$\024\304\342|\273\027\213\0171\355AI\020$\022BA\026F|\332\246\003\021U3.\3368\311\223S\335Q\276\r\0073\347(\374\242M\206X\372\203\371N\333\344\t\275>A\320ud\203\264\014\034\034\350$I\021\314\220\222\022;\3273y\231)\033A\374\300a\014\210Hk\311\343\365\223\364\353\236\377\260\355\024t\\\300\321\302\"A\235a\343\026,\341\303\316lL\025\250\211\271f\254\253P\356;\306\031WV\275\020\340g\322xrq\331\265\313K\211\375`;\005\327\247\307\027yj<9\231?\215\311\260\006\314\253xA\341\327w\374\300\306U\362\014\300o?\203u\324\360\235\321\270q\276\340v\307\261s\266\321\0204\035\315\216\202@\347}\326\331]\027\350\326\212_\257\236\003&\214,\037\312\335a\264\306\267\301\223;\"\234\033\207\256\2218\004\273\303\266\347\341\321\256\347V\266\203\3669_\256?dA\351~\n\341\324\257M\340\275\317\213\r\3544\225LT\3641\027\355\025\210\246\232j-\313\ra\337\316\324\004\204\013\232\304!A\355\250\212\361\260UB1\357\rsJk|\356S\355\371\275\251b\020\345?\"\326\014\"\"\321\021\202\253\235\2234\217\025h\262\350\222\022f*\005%p\355U\352s\022\333m6UZ\252(\305h\351\340t\256$U\220\340f2H\342bG\366\371\306+\260\240\323T\377:H>\332\240\350\010\273\362\326\024\r\256\203\030\321\331e\016\324\360)\027N).\222\364\241\027\007Q\204\274\022W\336\230\262lf`\373\314\376'\024\311Y'h\241e})\317\225T\235OM\267D""\216\314`q\344\200\242\321z\365Uu8\205\371\226\031\206\027\347t\253\331\361\202\365\332\n\267\367<\322h\027\272\212\2265\"G\277\207n\307]\245\t\323\244\361U\234m*l\206T\027\247\241\2134\327}\237S\351\330(\323L\3606szg\236\035\036\267\323=s)\006\200\365\025=\3673\272\376\324\234\263\3520-}\2703\210v#\243a\027[\203\2025\223\031\320\234\333\210\202\224+\251\271\266\nJ\315\014\312Y\273\320CW\334\306<=93\215\2565\262S\2630\327\223\340j\\3$\314\226<\343\3314\211Ce\357\010!\356(W\356\253\307\214U\313L\254\2318'\265\353\232\233\270L3/\210Y\265\226\326\232\253\216\265i[DFpm\243\267&\305\354h\r\363\330\337z\013\031<\240\216/?\251\367\311\373\341\314N\333|\037\203\217\017\215\257\252+\366\355\333\207\317\247\312N\340\322\017&^`\233\300\037\272\326\335YB\302\204\374(\200\266\374\333\006\024>,\\\247V?\276\037\207\331\026\230_y\277nx\372\304\034\037\010PZk;a\3258\237\001\2125\204\234\203\260\2242wF\367\206\366S\264(\030\242\241Dl\207\343\0315\022A\017\341\001z\375\320E\314\346v3\246ul\257\332[\006\367\013D\033\317\033{\372\213`p<\365\002\307;q\277]\240\354\030\324\234f\363p\337\233\337\217\217\210\324m\305\360\333\307\310\247a\337\200\272EUn\312\373\002\277\326\233\274i\277\016|:\342\366\252\363p\n\026d\233\270M\236\016\222\371M\251\346\315\272\212\322yW\312\364m\350\\c}\325\313a(-\004\236\233\222\316z'Rchs\2162]\025~\355mX\360\215\221\224s\202R\255<\325\340\347E\203\264[/p\270q8Y\030\243[\2314U\2132!#\212\212k|\307D{\324\331\345\324\n\020\244\324\t(\244\310\033\344\265\025\353\275\353\2539\210\3555\311\314\371'\203\020\217\275\252d\303=\203\245\243\036n\256h\266\301\2651\213\272\327\226\206\036+\330\236\r\265\035\017\270\332\353\374\021\307\026\337\251\334'\314\253\233\343\262\307\352?\237G&\347&\027&\257\365cV\216,\275\010\034a\332\324\324\025\3536\212\265\232\355#\202\025\235\232\263~\271\211ai4\247\034\226\266\274a-\370\332\347\251\224\300!\343l\213\225\204\322h.\253qa\247\013O5\3232T<\014\002\010\206\312\345\\\025l\340\332\262{\324^\2657\340\232\307\232\336lS\247\261\026""\3470\304l\315-L\3523Mg!\320E:\266g>^DZ\202\377\266\327\253x\264\307\262F\276Il\237\205Z^B\366\001\372\340\026\336\3023\321\033\372^s\037\022\355\034eVM\255y_\274f\270\350\304m\nm\230\255q/\254\374\254\314+\010\300R\247`\354uqq_c\035\315f\361\371\026\267\rA}\321\316,No\030\343\254\034U\346\372\220\310\327w\003\370H\201ya\252\276<W\273\307\243\2215\261\027\350R\212v\227\004\014\212\304\322f\345\004\273U\350\273RTIu\355\305\305\340\036\226\030\306u\203\r\267\265\".@\350\361rw3&\320^b\310\301q\254<,\327\001Y*\027\307`\367\2772Wo\312\253\360\035v(\24491;\361\006$\357T\025\337\253h.[j\3063Sl\231\"\335)V2\323e\005\240\336C\350\273^+Q\345\353\364g\265\310\333\243e9{\366Wp\033\345\241\366\013a\254\t\252\362\364I\327\302\303\300\336\321`\315)\thf\2324\316\321k\225\317\262\026Fc,\312S\022\240\300\332\344\233\244\366n\335\261Kz8eh<MK\232\023\317\267\027g\301r\373\025-\314\3527\242E#9\364\024\275\005\243\2245\247s\240\233Q\267\021\341\362-.\3467\272\343H\276\341\302\262;L5V\271\006Nor\350\363r\273\237\212C\036\001\263I\264j!\0224\203\256\267\270\274\007\317\003\327\303\343\373;/3\013c[[\231\273\365y\362-\357\247\264yA\036\225W\2550\256\330\315V~Z\315\247\274\354\000s\214\230<\254\351E\367\013\344\222\363\330\261\205*\026\023J\023ld\302.\022\251\313Fk\345\214\332\323\340Q\006\254J\233n\026\216Lm[\275f\361\206kD\027\305\245\274Z=\225\307\242\344\034u\213\260\262\341o[\267i\334\264\366\301b\346\226{\337~\337\021\2439=\326\340\2456\305\335^@\211aQ\031\233Igl^\225\340/Q}\2078\303wn\244\217\206VN\361L\036~%\003V\315\262|\t\342\331Su\232}\313z0\267\013\253-\265>\257|D\301\210S\333\177\212\327y#\036\202\362\337\256!\255\323\353\323\177\016\341\261\273\337e3\013\244\3747\233\252q\344[^De<@`\211\004~\305\36502\354.H\333g\257\277\033\325\226`\341k\335\265gl\237S~\375-\340\337a>/\2767\037\245\303\366bx\315\251\2221\220\036\276\344nT\26585<\323\204\0232\230\224TSu\326\347\210\254\321\027\251\327c}0|\345\316c\366\273\014\342\373\336d\241\335UPh\270\233\026\226\322\021\313\r\rJ\265\030b\023P+""b\256\333j?Q\326\222LQ1\005\030(\356\223\251+J2\352\331z\373\356\347_\030\343fZ3\317\253\263\244y\264\216?\360\340\255Q\312\275\254\212\234MvuB\240\335\346A5!\274\341+Sp\363\257\0301\"\272\021a\206\362\336P\241P\256\030\316I\021M\016\335JJ\245O/\357\333'\206\353gU$\253b\334^\303p\030\375\217\252\257\177\313\343\262\257ByE)_\277\225\353\261\004\312\301yX\306# $\2104\304}\216?\027\314\354\034\374\374\2329\230\321\t{\236\335VU\356\307r\325\243\354\340\270\225\025\333\035\310\225\351\273\262s\360\357\360OYX?\344t\303{\331~n\3408\303x\266`\217v\375\353\331\377v^\336\2321\326\263\225ec\263'\233\221\322\332\333\376\373[s\177w\2736\016m\270\364\216\177?\177\364\247\350\351\335\265\275\240\202\316\013TP\275\352y\262]\221\223\341d\030GKZkLG\305\250\26559\206\252\330\330\\\217)\207\027\276\261i\362\245\370J\026lb-;YZ\036Yt\343VP]\355\310$\206c`C\rv{\226\256)\t\265S\rZs/\037\250\367~=.\216\241\343\222\3245-\336[-\226DC\201`]l\357\331\360)\207\311ZpF\213\034\305\275\000\322\237vJR)\246\234\323\307j\220\204\277\315\234<\353\267j/\353V\250z\376\017\306\366\003\023\355\347#\317\307\354\352\276\247\016\336\367W\217\276\033\210FFr\351;\330pz`a\r\244\2601n\204r\275S\341\375|qj\355(\017M\243\022,\260\260\017_\360\377\016l)'\245\027t)\216\312\346u\372>\256\000:(\314\267\345\356o\312I\004\314H.\n\326\377\3549\322\213\261\314\222\257\321\317\\\325E\307\025\255\211\313\331\312\337?\316c\364N\2707\210\366\027,A\264>\224\304F\373\341\202\025d\247j\261\372\256\027\350U\370\332\322}>\302\003\266\017\016s\225\347\304/i\237\305\336\255\351\336\033\220\265\234\325\226*\263A5\373\034T\255\345\212\030]'\205\223\017\311\311'\333Z\241\261\261\260u\337/v\232\031\334@\007\002\016\200\270\217\264\230@\004\220\001\307\322F\024s\314\237\355\217*\360\346\255\032\013\322\027\272AF\271\027\220\326\331.\344\365Z\3213\364\027\243\325\230\265\251\365+j\326\324\310\355\233\017\010\221,9!73\270a(\201\030HE\033\360\242\232\321\237b3\016\243\362j+\332S\375\253\307\332\340\205\273\257\260\371\256w\277\016\335\240""\306\257\317\252\317\026\316\336nu\007\363\332\337>\005\237\332\337'\033\253+\234\272X\324\370\343OE\244\353e\214\017^\014\353\2159mjom\276;[s\256v^/*\333N\n\034C\270\247\250\2166\261j\217\222\371\327\006\213\316\255\262\200\302\3616T\217#\355\nq\253.\r\342\332\370\261\035ZY\225\237\016\274\255s\303H\306\361V1\250o\323\320\276\240\275\344\037O\247\361\363\371l\315\314\273:\325\320\365\313\357y\333\310.\242l\340;p\307.\202\336\003Q\221[\305ClJ\231\014\266\030BBX\363\370\305\233Rw\027\2365\377\220\266_?\357\321\314\355t\\\3237\245X\307\307\371\222_DC\036\260\362G[U\355q\375s\353\237\237\367\r\276\277'\177\257k\016\200\026a]}\333\313\353\353\366\275-a\354\220\3063\325\205\314\367M\276\301=\035\324:BPu\250\357\210\351Q\323\352\314#\246T\307<\350\262P\216\031\211\356BJ\267I\301'\354b\331\3769N\264L\345eM\026\014/\247^K?~Y\331\344\210\231\020\020\350\224\270-\316X\311\371\303D-\237\325\252G\221m\267\035\346Ju\334S(\021\235\353\374\234_v\205\373\337\037\357\320\016\301\334<;>\321\037c\302z\3061y\207h\0342\361._\367b<\252p\331\t\261\267\023c\331\323\277\230\322\234\321n%#A\237L\255\227uL9\331\370\257[\311z\313\323\013Lob\376\325:\270\275\340\314\254Y\270\332\330x\330\334\270\321\310\307\337\357\264\2662\301\213)\223Fc\0316$\260\0375x:R\323\345\033\026[Y\247\271\237wWQk\331\260|sF\214\333\232w\215`U\327\253Z\333\325\323\367\321\254*\252\n\212\203>\314\266\361\354\365M\234P*\306\025\253\245\335\374\232\0339\021\232\214\206-\317L\336]\314\200\035\353\006\270\276\206\315\026\204\264\204T\314\261\013\rZ\373y\224\000\274\257\234\373\016JF\034d\013\252\213C+d4\306+\020tP\006\200\265\214\331sf\330\342))\241r<u\033}\003cE\007p1{~\303+G\"\273w\013\2314\222\026\017u\351\2733\244\\.x\376/\223\325\263\312\013S\\\313\203\004wpD\322\245\000\247hIdBKD\277sn\277\253?\322\240\306\251\333\350 \270\275eb\337\231!h\342m\266\333\304\333m\2662rc$\034\003\r}\033I\274\350!7\222\376\263\325\203\265,o%\013 L)\222)\026\017\253\223\355\336\370DFu_\352B\331\335\244K\022\035\341\021\230\332\361N\346Iw""\250uF\014\0255\0055\r@\320\260\377\037\314.\275\0378\317#\215\367\373_\243\371\234?\323\372\177\215\272\3457goF|\311j\217\333\302t\205<\311\266\301\334c\321\307\214\307\241~\375\250\216\365\2453\026Q\203\271$\334\212\306\265f\2317\256,\234\3365\373\367\372\023]\253\324^?\265\205\345\327I\276\336\346\333\032gaG\316\033\343\304\304\005\343\356\374\032>\177\213\207\213\332+3\025&\333M\346\014\231\014\336`*\022W\005dw\322\267m7)\305~\007\226\314T\224\321<\363as\221\361P\251\230\242s\021\316\300$\214\031\260\355\\\341\177\271\344\240\240(\351\035S@\347\247>\240l*q\334\353\371\376\247\362\376\363\273Wt\020\221\201\343\354,\2368d\214\307^i\223t\242\303\025\177D\324P\233\300\031\334;\370\274\373\201\204^m]\007\252;\256\023\033\255\301*,\3447z\366m<x\265>\364\3773\203F\376\013\351\266\323w\224\336\034\r\266\333\031\335t\272\372q\363\036\305\264\357\t\270\210M\266\233\334\364C\236i\270\244\335\217\322\255\264\275\026$#*\313\227k\202\353\347=\352\345\203\232\244\254\002\374$\037?\300,=\2329O\230+-\005yg\026\034\376f\372J\363\023\2352\342\004\265\3654X\376O\327\007\263\203f!J\216G\366\347_z?OQ\276\360c\2663K\037\237\267\357k\203\23031\3038{^\322\307L\352\267\210Sm\271\234\355\035j7\336\014u\214\322\307[u\\\034\301\231\216\031\303\332\366\226:gU\274B\233m\314\347h\353Q\276\360c\254f\226:\333\252\340\346\014\314p\316\036\325\r\233c\211\r\363\027\314u\206\310\2566\336\272z\324o\325\361\\\353\251\334\342\014L\033<f\225\330\332\241\247\275\310\016K\030\034\014R\\\330\340\223[\020rh\203sr\003\007&\014\224,\035\033tQ\300r@d\222\016\006\027F[&\210\252\t`\rm<_\362\276^b\313\273GOSQ7r!7\230\022Q\t\273\034\006q\033\335\223\237\203\203\225\364Oh\226[|\337)\257[\311\tR\217\317}\271\337s]\337\025\024\"\007\337,Y\n%\022b\273g\223\213\245e\232\006\033\242\234\022<LL\025.m{;\304\335\372W\263\367}\277O~\351\266\323m\246\374}\327\255\326\373=\356\373\273\375}^\215\316\260c\2279\203\006\014x\364\245$\337\322s\316\275\371\351\013lZ{\233:\267(\256\251&\334\321\321\233\255<\311\262\242!7\332 \036""\353\0363I\273\036<\324EDDDA\004\316}\362\345\266\331\021>\245\272\353\006<.\335u\216\271\314\030\357\267\227\316\365}\367\251\334\002\201g\316\342\r\275S!\210\356\247+\237;'\014\3449\273\330\256\311\270:W,Y!\0220\274*\014=-QR\210C\230\307\013\214\2310!\365\000r+48\372E\265\232\325\271\254\271F\226\355\223\024\324\233\316\312e\350\351\224P\233\2464e+\231\212\271;;\026\235M\266\310\213\350K\020\245$\334\n\365\240\275m\031M\276B\323\232\315\273^\246\3526\227b\004`\343\005\275\352\256+*\321\307\2157rr\366\261\275\330\024|\022\275~<Rp\331\0358\203\016\236a\3152\220f1W\213\036l\025\364\274\270G\266\275Qp\373J\035\037\253\332\245\2309ZS\313%\\\007\277?ZX\260\344f\2529w1uC\364W\233\203>\225CT\265=)\302\206\241\375Mz\rSN\340e\252i\261m4\243M\333Jy1F\233OH\275\227\2077f1\214\367\034\257d\3351\212\214c\030\305\256\366\343\030\3061\214c\031\341\315\306**1m\274Z\236:\345\242\325t\255\305\264Q\265\243cm\343\310\210\211\"\"\"1\021\210\210\210\210\210\210\210\214DDDc\021\021\021\021\021\021\021\210\304]\177gwN\316\336\323\235\376_\303\256\271h\022\242\222\256\214\2734u%<\255c\355\3236\247(^\371~+\234\235\376N\360\332\0002Y\343\212@\007o\033r\363\177\244\371\227\223\267]\0275\331\2368Q<l6}\212\345u\267~\307\243h\215so\016;\307\352\376\014!\361\243\243\340\316\202x\004\001\331x\236:\277%\241`\024\346'\266\312\316|\025\010\204\337\217\301\374~6\274\245\326\354\353\256\305\025x\306\r\312FMz$.N\216\332NCf\356t\246\013\305\352,\351\330\3339\361\036B\371\325\213\372\003^\247(4\220\226\361\311\345\264\027\374\007\\\217\243\236\303\334;F@\223\030:\200\334\343\250\353z\316\274\315\261\252\324\201\334\214\345EZT96N\236W)\0230L[\235\330\342\033\316O\032\271\257T\352\345e\221\243~g\005\241^\302\3448\362[\016\330,\025\010\022\352\344iI299\330\237\004\264\212\222\300\177\244\235\332\003\311\333h\004\005\315\210\235\332\036\307\007\r\334|\370v\0103\205\271\265\322Bl\303\226\344@\014\306\343\332\366;lC\255\2329\340L!\340\333\007\217lDR\337\256\036%\372\002\336\264\203\303\327\215\355\025^d\240""\354\201\223\027\234/\016\227\242+\211#W\275b\033%\366\013\265\025\227\307<\312\252\212YR\266_-\013!\004\032\347\017\006\307\016ne\373\227b\370\\\233?\265\227\225\342\321S\352x\362\274Z\274\3465\343i\305{\357_\023\323\223\021\367f~(\237y\373\351\204\204vb91\320D\022 l\273\010hq\000\355(\224\202dcHf\022X&\323H7G\000~\033U\254\273j\\\033\212\265\252\231X\253\267u\253&\320\035\361\023\2220\335\231t\037^\034\243\370\206`\017\233\335\306\377{\353\037Zv\r\2325\2622\013\274\336\305(X\3324\206\034\363\220\357\341\034\216lb\231\313\272\207\315\034\226.\306;\257\354\230G[\216\341~\0108\202\3472\013\374\010\343.*<\312\2625\221\367\264\201C\031\000\316\376$\357\355\244\3600T\000\367\272Q\253\277\007\217\247\306wI=\263\343\225\220\031\234\202\253\363 \362!#Z\301\177\211\000\\NI\356\363ql4Aa'U\240\250\243I\000<QY\334\037\022\021\325<}\224\235\353\r\327\240\253\026\362[\021\323!\205\212\262\3679\206PZ\345O.Y\344\217\007\367\303\n7PX\030\311\274OT\323\006\243\304<z\200\377\306\357\274\267\331$\002\032\305\275\2272\235OO^dX\214\373}\313\230i\232\32779<\227\237\276\n\372G\007\250\003aS\031\001r\3237\221\275;\217q\t\345F/\232\267\211\340\310g\225\274\307\206\033e\215\203\201\177l\003\332\374#m.\324\016\271\317\227\243v\300\367\240\224\016<\335K7\034\360\013\352\335\233\346\241O!\207x\330\241\363C\3228\241\250\263wR\007\244\200T_{N\035\342O'L\036\346[\313\365\023q\223\252\034\311\030E\335\t\351\205:@\236\320`\025\330\272\340d\022FF\211 yN\350\23418lE{\200\0213\341=\361\354(\220:<^\001\343\341Ec[\n]\020#\207\303\245\234\345\006&\2149\214\357\025\311y\226\363y_\373-\272\274^\315\201\352\242UC\"\007\244\263@\344\273'\211\022\014\333\177M\307\334\001N\252`^\321\255p\321G\0201\241\r6\032\n\n0\242N\362A\301\307\343\370\355\363\007\303\\4\270g\224\031\014,\251J\3201\223\024\352\034\374a\342\314\022YS7H.\331/\236\016\236q\213\227\214w\"\356\316\361\257\270\267\254\357E\355G\355E\023\334E\271\002\004:\200\353\002\223\023\303\255\323\351Ov\226\336\037\313V\022\t\277 \335\020\242Q\006\210H\025""\262\017\343\217\330\316|\357\037.,x\257\304\256l\t}=\226\274>M\030\031l\301\327\207\177xvP\230\323\274\341B\202\024\200\201\204\001\005\350{fL\233\367\247\245\013;\215\203\237o\223M\312\273+:/G\255w<;w~\2654\241\222k\026m\346\373\010\237\177\276\266\235\3757G\356U\304\274\034\240\265\031$\307\253\026\030\206\341\335\272\337!GE\203\303wm\364YN\0066*\025)\250\310\302!\n\006\342\201M=\323q\323\237\242\317n\0208\202n/\334\243\251\215\351\272e\024u\247i\\\270E\215\340%\246B\r\205\303-<MG\222TA\340\231\010\334G\331\320\267\334\200\346\300K\024\303\024nm[\375\002\225^\354\367i\226\257\265$\224\343\025\221\252\003\026'\252\313\0233\201\233\303\"\267\335D\005\276ji\231\tHQ\004\206\322\226eEN\225\017/E\252qp\314\300\344:\253\324c\324\246\220\305U@\241\203\006\300\335%Bs\255\256\270\267.\325\212M\252*\2514m\316\266\324\241h\220)\205\343x\246\367\347\327\325\334\371o\341\006PV\203\220 \034 \360\374?Ku\223Y\255zQ\266\244\340\016\355\025Q\261\266\213\020\304\347oJ\030\215\241[\002\231l\252\220$\246\261F\351aX\251\302\232\030\3324\310\254q@\245%Fa\241\374\262\256\306\r\362\"\266\"H\262\333\240&\361\005\241Q\211n\244\222I$!\003\025\241i,^5jT2\343a\205\204\301\251p\212\014\0102U\0232\006\003\244\r\364B\203\353M\022{H!\207\216\362\247:\3636\310%0h\343)O\017\212\311\304\2022;p4o\270p`\0055\365aU\305\013\014\325\343\255\343G\314r\320\034\t\203v\210ow6\363\310\034\240\353\360N\036\254J\263\335\270\023D\374\310N7\320L\000d\346E:\035\350\221\3349\200\204\322mt\304\021#d\021\024g\276\244\316\000,\346\204\323\022\370\324\031)Y\2458\230E\327t\315X\222\3746c\302\\\210\200\tB\242\354\251\006\332H\t(\224\263s\026\2170\3227u4\215\302\365\217[fe\252\016\351\263\001\242\250\021U m\272\220\356V\234,\273\032\334j\213\211\351\001ZLiFM\223\024\376n\353\013m\236\353\215O\230R\331N\373)\346Q\215\270\305\t)\344.\302\352\322\312q\316*\365\200\371\323\347\001\265\250\306 5\215\246\334\004\223\316\270\326\337\035\324\244\315\332\246\026\205\026\216\035\335\"/\010\221\212]\360[y\354\370\264_\325x\\\233\3045""\r\003\030nl\355\013~\265\272f\n\030#\241\240\302\306K\343h\216.a\"X\016\321\337\020\263\304\\\316\373\230\303\024E\322o\201\\\352)\222\306\262\236w\264#\214\234q\313\320F\013\tv\314]\326a\\\304\004\365\000M\210;\321\231j\240R8d\230\346\301P\302\203j\232:\204n\261\225\n\306\357Yn8uF\231\202\334\365&\314\266\353\251\201\271s\n\026\355C8\326f\371$\343<\017\264\021\247\0242\323\357\233_\202\0360\264gW\347\206m\010\242\352H4Ye\273*n\315\223!\004\324\027%{T\342\313h\202l\347^\005p\256[u\030\2618\037\205A\341\362\005\276\276\240\307h\356Q\010\234\232\027\201\265\230\320=\316<:\267x\316\344\271\251\334\357\264\275k\030\264kD\271\251\321\255K\326\261\213F\264K\232\235\032\324\275j\370\313\213\303\325Cz5\243F\262h\301\006\215\004\214\222\2114\0324H\314\341\344QB\260\230\250\270\270Q\3043X\272\213\352*|\275xv\355\343\327u\352\374|\005@\000\000  \000\000\000 \000\"\000\000\000\010 \0367n\267\223\311\332\357\357\315\322s\232\362\331f\343\350\347\023=Y]rg}_n0>7\350\353\0233\356B\331.\n\210@\324i\207\314_\274Cm\031!{\212\207YH\347\322\253\257\237r\317r\001\245\310\035%)\316'|\007Y\244\240\203\203h\265&\020i\243\251\366B$\014\254\357z\232\367^v\371^\301z\372%\270\357:\026\322U=\252B\014G\206a\025\250 \205\r\247\020\334\025\202R\321t\366\230ci\013\031\027\226\261\350 \271w\342\326\321\254U\231y\264m6Z;v\311M\026X\002\305\244\276\3026\255a\336mI ;>7\274\307)\037\370\004\300:w`\3744I\"\242z,zIa|k'\177\013\"\033\213\366\006\300\334\300\240P\200i\210hk\223RM\010\267\\\324\001\215\317%\277\263\243>\305\002\342\235P\035\017\320\030\271?n\024\007>GOI\256D\254\035)\201\304t\235\375\001\324X\022\023\327\260\372\235*_\353{\322\307\343\037\273F7w\021d\2208\302\345\014\201LhKq\323.\247\264H\233\370_\272\303\030p\310\020\306\244O\330x\002#~\037\200\261\200\016\274\225\373d\373X\356\246\";\215i\264\022\021m\002\334\2503\312\204:\361\320&[\242y\003\022E\242\\\331\026h\034\266~\035\374D\320\313_#\315\255\211\343#\036s\356\262\240\366\227v\007,l\217W\224\330T4'kQ\235Q\"\263-*\023y\240\256\005i\031q""\303\033\033M\214`K\017+\217yW\0340\272\033\335ox`\307z\202\333\000Iy h\233/\035\203\206\376<}\004-\243\027\237\r\031\2626.2\2014|\264HV\000\177\245\211\234\333v\026\375\236\234U\325^\222\036\365sP\316\264}Ox[\201D\3559\263\310\205\235\262!Y\231\222\312/H\265\210\206\034\262\035\333\233\007\233\330\365,{>\214]QsA\266\366Um\325^S\033&\305U\360T\247\354{\274>Pe\241z\035\353\275\257\357+\247]\203\263\342\016\036n\254\002'\2372\033n#\261\242\322(w\024d\356\325\346\355\205c\017\336\340a\002p\014\022RI!\357\352\021\215N\214\005o\314Z\341m\363)\021\003d=\220\n;\303,\370v\356\257\016]\037b\356O\001\3454S\224\222I!\0108\250\036E\217\256\255!\200\264Cbivu\360A\025\302\017\276\324\271\257\270pz!\324\010\213\250\037m\253\213\345m\341 \370\233\322\320X\205S@U0\263\nh\215\0051J HD\301\224\232\022cQ\211B\245!F\265\337] \322\367G\n\272\216=#p\024\312[\266\007M6\005\016\024\016\200\336X\256\220z\027\251\355\021\210\365\317\320\325\376\226\262\375\224Q}\205\270\026O\316f\2758\333E\217\334\242\203\3260C((\226z&\244\325\250\223\335P\222\326z\300O\226\313\310\360\357\312W\332\3719RG\014\2035P2<I\032\304\303T,1\210\220\010\000\313=j\246\250\311\033\300\275!D\017C\271\332\314(\006\242+\240\201\270\253\244\210U\021\265h7\016e\330\266rx\\\335\316bf.\203\370\005\"\032\251\265\304\032L\200\261\033^t\3008{L\235#\265\031\374(\207\014\0303\214\204b\301\206\262\2202hWQ\3729\207\317\323\237tHcY\252&m'\252\\\226\346\226\345\234s\217[\271\301\337\031\037(\367G\303G\230\375=\325\030l\206\340(\361\231 ~\210W\243k\256\366\267\3445S66J6Q\225b\333\024\226M2f+F\022\306\326*@\244c\027\357\345\026\020\264\273B\236\026\266m\027\302\\\243\0202\270\265\206\231\303K\3403Zc\027\020/T\212\007\253w\311!\022GON\361\313{\037W\207\322\314lNzg\00623\250\221~\360[\301g\002\217n!B\231!\"\376r\320\232.~/\306VO\312\020\326!CN\005\242\346\206c\3148\007e\213\231K\006.\236a\335v\304O\000\020\022\317\220nh\216\2656\302\021\323\265rQ\250f\371\247sl\033\246\2437\013\340\340\345\323\216\276\t\307W\263/t*1\023|h\311<\000s:\2573""\343\261a\255\303\334\375;\010\367\300\220\203\016+\203\201\311\204C\3177}\275\263\323\036\300\236\035h1\005q*o\225\234\241\333\340\035p\025\347\207\321\336\323\263\331\375\307,\240d\377qg\331`[\276\257\223\357\3602\331e+\204\224\027\332\013rW3\225\211\203\306\323k\206\034\372\023\300\032\366\036\3554\331h\205\351D\302\305\202x\357\007\314\261\213T\334ut\327\232,\342\007`\367\336O<\262\256\207{\022;\221>\352\020l\370\261\026w'5\002`\250\263c4\341\271C\026\337w\262BW\354\035\3367\354\003\263\035R(\367\305g\225%\276\272=\303\327\235\266\213\"\033\375t1\210\303\376\037-\272\312H\37632\203\364\352\264\361\243R0:\0058g\263\322\373o>\275/>\262lmE\026\231%\261mFe\033\r\0251\266\306\265\213F\326\305b6\255\261kX\265\260ck\360\253z\355\\\264K\201\227\245\3633=\336@\373W\207\234\3660B@\223\2725\000\211\031b\201\2111\203G\202\360\337\327\315\021Q.}\320E\271\353\314\345\372\034\000\374\206\r\020\324\341\256y\262\351\361\177\n\230\001\000\240\366*\\\265\"zC\221\031%\2657\021,[\272\233\222X\031B.%PJ\247\302<\253\241\013\300~\261\331+\201\343}\034q\004\\lp\236\344\005\242\002\207Q\252;\364\324`\300dY\r\000\342y'\340\030|}\r\235\0306\267\235\326\333m\214jC\210\200l7\216\025\274o\261m\200\0314\262R\346\031}fG\237\266\276\027\300\275\207\304\275\316E\376S}hLBBBF\020\203\t\023IR\215\037\231\212\320\307\333\310\247\270w[f\006\337\001_\024\273\022H3\024\252\255\031\033)\301\233\021\026\332\003Al\005\313mZ\235\377\0063\311\275.f\363J\327\213\264\224\255\322\346\034ndl]H\225\210W\002\304\252(2\330\330\330\330\306\020n\025ub\340\330\210\312)^(\236PB\254\276\302! \254!\274\332\215\000\352\227N\324\325\205\216\255g7!B\033x\206%\363_v)\005\246\0102\305\336\233\246\033\2232TO\025M\252\237d\2504>\376*\034\273\301bT\314K\202\006\306\306\306\301\250\360\324Q]\364\274\373p\222\347/\210\334\317\231<\341~\021>\001\235A\265\205\221,\366\236\316\340A\303\271\345\363j\330\343[\327U\031\037Y\375p\265\355\247\260\220B)\222;\376\006\276?\220\350\270\351\360\255-#;\037\031\261b\026\005V4\\\340\304[\232\357""\"l\025a@\253F\021\t\367D\010 \220i6I\010\332pk\311!\001\224E\033\220\001.L\245QMD^\271\306\035J\326T\224\211+\224\366/\233\354\345\351\300ea\337\231\337\225\036P\312\242\264@;u\347\213\357\335B\330\222\250\326\201,Ea\300Q8\306\211@v\034\002*\314\020\214\000w$R\275\242\3671\355\0266\252\205UE\022\215\350\257\233\346\374\336\016\0147\004!\203F\307\351\037:#\345\247{^\273\266\330\341\220U\350\247,p(\221z\274\356\256\203\326\255k4\036\304\315\300\257Y8\013#\344\036\245T\226\366\037e\266loo\2166\336\374\250`/b;\r\032\201\306)\t\010\004\201R\201\241\240\242\240k`\345s\225\316O\252\006D*\333\357\261\352\200h\214\204\250\205\005Pb\r\221\222}\225\200\033\236[\307-\207\010\257\234\270=\325=\375+\313:\376\035z\373\373\036\335k\325\256z:\0306\r?L|\250\361\002\t\204\223}/^\301\030\352er\324q\305\345\200\374V\3037m\237\300\205\000\313\000\320PJ\230@\034\032\317\256,\335$\034\233#\237]\267\n\016ZK\305\007\345|}\027ck\2632\304\311\337\010\253\003\367\375\273\311MbB\341QN\024\204\310\324\214b\221\310n\353\000R\226U2C\003D\220\265KIB2\003a\234\320\2623\033\262\350f\013\244\246\nT\244I\020\344\311\210\246%L\246Z\211R\3331k\026T\232\320\257*\207\344\341\266+\r\020\320\323\030\035\221S8\256D\2504\220\322\002\344G\003*\360Ds9\253wwV\356\356]\335\302\206\254\262\312\000A[\370\020\032\036B\312\3104\213\004<\250\234\252\256k\316\022/\2767\302\335\243\000\373A\375:=\232\321\203\337\240\240 \026\207^\225\345\236\365w\2573\212\215\240\205\250\241+Tc9\214$\370\354\024}\340`\230\261\024\204\017\002S7J\252\212\021A\021I\241\324.\305\2010E^IAt;fE\210\311*\r\316\370@\204\030\241\307\226\330\0140\303\006\010\306\220\2511\036\252\260V\232\006\230\323\000\033>\010;x^Eo\204\202Z\226\034\003\356\002\257\215\212C\333l\372\017~\241\207\005\2253\002I\024R\004Qy:\322\004\000\345<[oN<t\333\032\320\224\"\302\001\002\001B\031\306\315\325\272\331\025b1o\327e\304\023\222\240\204]\020\323\032(\333\224\373\023\350\336\263B\301\002\274\233\304V\243\326\000\253\326\002)\220G\265\303E\021\341,\002\306jo7j\364,\355""\251;\371\253\223\214j\345\224\250FG\022##\033B\337\226*\025\021\021\2708e\020V\013\025)l\201\313\"\360\007\016##\030\306,\212U\316\303rp7D\n\336Ko\001\023\336\275\374\233\236\004\244S\321\272\014\264\r!\227\254\240\237\\F\270/8\020a\315{\272\t\315\370\013\206\3600@\003\246\367ZG\212\017z*\360\305\014c\0035.5\226XE\236K\010\366\0070o\250:\3001\364B\273\262\317\336\327\t70\306\007\314>\336\224\367(\202\222\3451n\377S\303\265\343x\3265\276\355\220\222AY\301ADP\313z1\372C\340\341\007\331\00203\024\347\375\002\212\000\315\325\235bR\305\264\332\255\023\3711\000\346\001t\326U&\332\3436\\ZSz\013\212\273\325r\225\366\225EB\242 `\020\010\257\"\010\031\216gc8\330?\"\034V\222\266\310\220\020\231\0044\242\242&\010\272\314\240\350\003}\354\333d\363\212*\354@\210H\246c\035\301\026\301q\361\006f}l\372\020M\203$cA\214rp\261Vh\214\3064\326\346\364\244\222\026\300\303:\335\333Px\311\036\205R\310@d$$-\365\322\306\301VcLT\212X\233@\306\306\232i \370\010\251\n\353\210&]KAnb\334\327\200\242\034\365X\321\246\320l\203[\232\345&}z(-\322\330\371F4\263\034\036\301\224\007\230vk\320\314\200D\372\205\200\324Y\023\262\374\000\245}7\347j-\\\037\241\372\322 \206\r8gR(n\001\367F\315V]\267\345:I\315\277\324\027\020\370G\277\024(H\3002\006\307\2541K>\031\367\304\371\017\002==l\037\\<\365\250@ooW\n.C\007s\022\033OJ\242\332\321\204Q# \220\010m\000\210\364\266\001\270b\367\335\354y\035\277\005nFw\343\r\334\204V\302\314\336E`\234\031\032\306\3426A\203n\211\371$c\363D\364N\356\245\006\373n>,\276!\233\263\316\030\231\230\244*\271j\227K@\r\376\362\253\361o\254F\001\365\t\002\355\356V\352(\221c\354\275?&q\201\007\017\256]\356-\225\2534\035z\353\224\202\267\204\321*\251{M\362\020\220\222\020\010\023}\004\r\334\216\200\30540^\306\272k\356\227\343r!\207\2446\277(\363\363\344\016\032\r\242\026\214#\260\306\022\203N\243\210\200Y\261\003,\2149\362\235H\243\300\r\256\266v\337\225\246j\3306\265\267\\\344E\005\213\033\026\210\325\026\304h\266\212,KE\261\255\017UW.\353\301\343\353/>k\024l2\246\211\264\33052\000\204<""\233m\225\026#\245\226R\t6W\032V\343\037\230U\001\235\355\364M1&=$\332\245My\324\r\363\257,\010\254\372%~\217\337\371>O\301)\3236\021\307\021J\326C \345\016\361Fd32\313\235:x\232iL\305\325\014\323\017\023\232d\313\301\235\301\3360\373\017~\n\230\332\"\203\242\224\234\\<\274\334\265\233\256\034\231\236\232\3455\323I\\\323\211\027\033\226\346b\3478\267\032\247u\316\261b\275fmrl\273r\252\342\304\r!s8\344!\014H\307N\006\024`\003E\031\273iQn'#%T\353\243[\201'-\\n\233\224\214\350f\271\211\032\212\331B\227\3125\035\021\341\331\327\301M\3002\"\270!\322!\316\001a\373\273\321\340\200\347D\343E`\252=\260F\300%\245J\204\2127d\221\306\232\032\032t4\320\323)v\236\007\007\300\003X\341\207\r\207\344\007>\243\343\217\016\300P\303\256\300Mt\010\014\036^\275\352\303\324\241\004\035\375\360\334~)\3575U8\372\013*\221B}>\333\r7\336W\230\316\306\013\263j[O\246V\273\354\002<J/\363B\017\335L\343\021\004`\341(K$4\221T\202E\224\230\342;\277\010\335@\302v\001\2031\213\002\305*D\014`B\014I\006\020F\322\252\225\345\217\2726jOB\007\335,N\211\261\203\207\242\007&\324'l{\333r6\276\243\367\250\240F\330\036\200No\344\201\010B\002D \032[\261*\277$n\230\200\204\212\322\253|S\013Ik4E!g\310\032\036\323-4\322\312\256\315\\\232\271\263\\\305\256\313f\203\325d!$\002n\345\357\351k\241\245\244u[\016\222Z\251c\0062\004Y\006\354\261If\334\235~N\206,\003H+4\302\304u\017\340{A\301\322\370\265\231\330-\220\367\205\202\301%\357R\256-\032S+T\025*F\004\216\233\004~\220\327\233X6\304\254`\275\270\2651\341\354>Y\037Z\254\251\301\003Q\030q\2600eD@\304\nk\230\322\271\013{b\256\372[0\2061\274=2/\267\024\024\203[A)|\032&Y\240e\344\274\377\364!\007yV{\3071!\336\023\",w'\riC\n\"\024\342\362\241\234\267\336({\003\272\201\245\330\325[=b\224\207r=\361\361\370C8>\346\307F\236\221\336p,2\246f\\T\226-~\354\240c\3537\234\234\322\022\022\236\241\010m(h@\235\020\t\027\325C\234\307\023\3377\231!\354\003\275\360\245\006\372\314\217P\031\003!\030#}\375j\331\360\371~g#\313\355#O\315\025\255\373L\314+b\351e\250\354\327S\037\223\262\310""\306\320\320\335\212Q\337P\007R\220;\370=\213\321kCcP~\235\234\224,C\010e\002\201\310d\230\206\340\351^\212*g\211\016\221%&\265\233h\236\336\017wh\177jt\313~\324&\345\350\366\300\370\272vs\036\234\215F\000\006\030\200>7#\275\354\274\317 ?X\014\010\261\3208=#;\260\317'y\253\211\246\2001s\250\306\004\316r\232\374\316\017f\275W\347\036\013\323\037\003\361\333\271\224.\326\205\346M\370&Mz#-,\177U\243]\237 \341\222%\263\216=\017y\3610\233f\353l\020\214\013p\216\203$\214\204\220$\200u%*\022MU]q\215\266\031S<\306ll\\HQ\216\241\013\245\304t\352\026Q\031\035J\325Q\211\333m\266\322c\202#J\311[t\322\343\003\202p\302\0219\300\354\345W\242\240\200}sKm\247\262H\311\256\300d<\3318\206\r\317\235\2259gF\313\241\233\230\367\313DM\303\3654\243>Dt\341s\211\000\271\031 1\220\266\271\332A\2667f\204R\237\027\365\032\354\341\321\354|\204\307\276\014i\240\370Em:G\263:$]{z\353\357\353\273\355\037|\326\336>\346\310[\315\270\215%\235\317\301\014\225\301D:\304\207\337\037\t&\2405\212\205\r\020\361z\274\244\030\264 \221\245\221N\n0x\345\302\367\247\003\276\013\3104\233\0361%b~\245\250\316\014;\314\304\220\323\205\335\331Dq\212\026.n\263D\270\336\360\\\010\031\226\351Lq\205%c?\201\024\212\026\324\365\261fYjlX\"\221$[,\252\003\020JWJ\224\355\004M*S\235\263F\002\241\274\301rr\324\231*\203#Weg1)\215\021*\252P\322\273\274\020\365\304l0T\307\207\006\2061\\|\246\242\007(\273\021\265\351\270\024\013P-\267\023\274\335f\343\273\253\270\356\352\356\\\272\272J\016\313(\262\324\202\325`\250Q\201\\RRp<^\232\004\2336+\334U\366H\314\331\024\031\0106H\2357Q\001\330\224\tU\027$\310\256\316\002Z\006\2309fMc\016L\306wbX`\r\2367\363\217\340\371\226\265\320br\214>y\323\236 \236\277\207;\n}\204U\016\205\230\274\345\257\313\272\332\210U\t\307\217\036\231\016\243\t$\362\255\301j\222\250($H) \01002\004/\206\347/\207c\320\246Xb\007\t\324%\206\375I\013\036\275Z\303W2\016\341D-=z=\025^\263`^2#\025\222V\365\343\301`\257\022^\233m\2663\002\263H\210\345Jq\205B\013\016\205\212\004\226\0219\303<\010|A\323%\226B\261\365\304\303""\212\306\272\217\250\317p\341\245\271@J\323\024\253\024B_\320\033\232\2011A@\347\200H\002\216\003\004F \214\211\351\254o\330\333\221\007\016\213\301\002b\242\014,c\336E\002\256f\245\313\240\227xu\224\333T\001\243\341\353\317\323\327$\22263 \342\350\323*\275\27067\366\367h\366\364\241\301\355\261\206\321\004\rFKM\224\245\263\316\2675\\m\261\215\2567\240*\215\261\2461*\030\212j\212Q\244\304\031\273\247n%\020-1\242\242R\240\004\200\210B\004\r\2045\320\0139eQ\023B\264#+\302\236\n\274\340TQa\025\342\247\260\335\304\321\014MSi\"\025U\277\341u\014F\231\327\277\260C\236H/`\023\246tP>\350R\236=\235\326\366\014Kt(KEH1H\014h4X\322\336\013\003bM\250\355\266\362\301EF\236\233X\276Qd\347\257\005%&8\312\020\016O\021 \230!\220\355'\267\200\321q\005\027\203\0143u\272,#\014\016J\006!\244\330\036\250>V\022h\251\210!\246\325\326Q\322\r\345\2619{\341\020x\3010/b\306*\007\253@B@a\232\240I\332\203\216'\020\262\330!\024\204X\232\301\244)\030\240\310W\200~&%\317kG\243\355(pW1\241G\254\261\022C\216\n@\335\351\240\222\002\222\030'\351\246\315\327^\277\223\252\363]x\021k\306&\305sk\313U\275\202\332\300t\000\242\347\342B\001\331\370\306\007^\274\301K!\025\357\261\002@\026\014\202\020\020\326\010hbc \004y&\033j\304\002\331(8\333\034\223\217 &,Wp\2145%\354\362<\350\340\363^\264g\217I\202\032\243j\t\221\007\212 \032\324\372\017Io\234\250\\\265\304\r`\274&c\341\374x\207\224\023^\202\032\301\0222\t$,\201\210\272\320\206\345b\267o\227\216%\023\245\270\230\212Q\331\330\r\223)\227?f\365s9$\010b,\343\210\371\360\n\226\212\016\242&\315\3547\007\216i\2029?F\034\365p\020b\314\206\033\300\220\013Zh%\312G.g\017(\244@\024\t\211\261!\261\005W\356\255\0050\020\2036\345\303\n\303\247>X<l\034@\266\nK,\026 \370\376\212H7a}\266\353\356\2606wC\234Gv\210f\331\337\234\233\351\250\036g\267\313\253\374\020\364?\210\361\360R=xq\016\270\020\222\023\0172\300Q\013RPR\376\000\305\025\027\311\313'\255\037\210\356ji\024\3254n\232\256V^\237\237\273zY\246\252\r}\223\342\267\311iSy\372\007\022z\354\224flA*\325D\203\016.\264*\031""\302\205E\320\324*\nSZ\201`da\031j\324\215\203\t\236Yb\214\211+\024@\305F\270\3031\014-R!t\220\247,\002\026\n\275x\366\236\330\360\265e\221=z\272\372\366\254\314\217\302\300\223U,\246\226\213k\310Z\356\300\245<\027\206\274\356)\257\313\311~\330 \033m\213\300\017/J\t\314Y\274\036\367\326\217\203\353\341\325o\027\200\325\025\214x:\027vk\237\225xA\251f\365jTj\304^\267\021\234\235\337\275\265\362f\316\326\274I\371\327\267\360\335\334\300\377\r\3655\241\275E:\323\311\177\350Ff\236c\366s\251\323\343\366\242\327\326ze\305q\351;S^\265\360\363Y\303\324\356W\324\217\330\333\027\326\036r?xz\244I\006BBA;>\257\206\343PA\220\024\370\231e\207\351\256\310\036\302\3503\306\1770\372\255o\252\212`\310\333c\241\300\363\267\277\256\200'\214\352\350\017\321\2474\211\275\357\310_\315\370\230R5-\336\207\202_\244\240\372\342?2D\244\033\032\236\377\365\361\275\274\272\301\236\255\202EU\257\237\323\017\343\330\256\270\317\004s\004+\340[~\017G\263\370\261g\243\345\376\307C\363uu\030B\227\260\303u\265\033\322\223\373!\266\275\377\276a\035F|\313\371\036i}\3743\210Q\213\353\227\345\241>-\3301\361:\241\320m\301\257\206m\320(\304\332M\241\260\377\277\243,\365\370\353\221\331\rH\345B\314\270r\017\213\247\363\312M\002}oT\354-\243Fe\001\222\327\273\027e\205[\010\000\330\330&5\030\2779\254\366\211\326+\263\262\266\323\331\366\352\251\266U\227{si\243\323\344u\376\035\256\216\243\346{WU\241\316\324|\257K\302\245\314\346\276[\211\234\276Q\323\331\362\336\020U\375r\353\231\267j\2651\241\304\333\177\027X\342\016*a\313\210\230\342\230\242x\034\274\201\376\263yC\210g[\261\305\333\236\231\344\3530T\342\344\370\203\362\366\371<\233\014[\307\"|\323Fdm\362\306J\342/+\3068\321\303\344\351q\236yW\246n\234~\341\333x\207'\244B\275\303\373B\336\014I\322,\366t\351\347\326\341\013e\246\343\366\031\\\313\370\357\231\215\256f\301\312:$O\327of\312-\275\216\224\213\350\275\251G\213\255\274\274\247\211\304\216\302\354v!\366\267i\227k:-\035\237\341\342\253\347\233\267\331&(\355G\020\350e\021\305IW\001\340k\302\3766z\327\240""\342\031\353O\353)pu\237\302\360?\013<\036*<\\QKl\361M\r\376\257^\211+C\353\372\336\232<Mx0Cd\232l;m\3761\036\303=\206{\017\235\340\362v\244Fs_\2725\347\2741\243\237p0\306\316\263\0141\373\374\376o\263\\_z\347\364\314\241\250\314\270J\201^of\276\023\251\314\363\3318\344\026\3339\364\271\376\317\311\316oh\367\351\017\007;\034\353\330\347q\027\305\360B\375\007\036\337;\314\3306,\215u\330G\336s\375\254\231\307P\331\353ln\006\372\215r\207\226{Tm:\016\374\366\271\023\311g/\341\330\262\276\216I\263\261\254\247+\251\306\350\272\202\376\256\276\271,\330\356=.\243\\wUP\362\272\234\025\306ke\207\222|WT\316\234\235H|\034o\214\327 \223:\017\241.\217?H<O\235\350~>\217\216Su5\217\007C\360~\243\207(\340\370{\375\023\322\360\304\023\370^\247\001\275\302JP~\0340\376\016\366\376\241\277.\031\023x%/\207\340\337\\\217v \372\374\373\277N\257\235\236\363&\363\327\356q\033\344D\022\333\345\362\3677&\324\375\261F-\317\237\371\367wf\3573\377\274\341\306\345\037?\265\317\333\372\226\311\264?\307\310}\337Y\265\346\327\275\311\177w\037x\313\363L}\373\331\252\334\365\203\336\307\247\242\367\343\2353*gw\222OA/9\273\361L\3435\251\344\305Uw\323V\230\364l\374(:\251\266\306\372\007S\345i\212\265\347\177R\263\301\251\363\374\240|\213\331\253HX\220g\014\001\365\231\326\312\032\036\206\006\177\343\243v\357\215\376%k\037z\357_\277\360\371~\216\303m`~\317\337eU\206O\266\275\212o\371-\3055oQO\356\375\274\177\027o\340\321\357\265\373_\223}\2137\263/\333\304m\357&c\254\326\346=>\227\246\020;<B\214\273f\273-\376GWx\323\331\316\014\261\006\036\232Va\246I|\346\233\0361\252\306\036\246/\222mV,\362T\3431z\213\027\234N\034\332\242pb\242#\005^p^\252n\357?\312\375\214j\315\356+T&#\2531\031WN\350\351f\263@Yru\017bc8\267\333\326/_z}\373]\325\276\346?g|\030\336\304\355\026\312\274Z\306a\304\317\021\231H\206b-\236\034\332Sd\227\276/-\2068\233k\356xVx\261tA0S\247\202\333q\266\257j\325\243x\354\346\366Qg{M?\267sN\361\306s\356\2139\325\356\234C\212\033vx\253\310\305\027w\262'\362\335\366\250\2073\325\312\265\262\355\024P""\357\251\246a\232\234\304\3320\347\026\301\231\"qr\366\234~\333\227\222\370!&q1V\231\254\303\222\367\273\310\214k\315\r\304\356\237\343\375\336\341\272\377\342\356H\247\n\022\0270D\307 ";
    PyObject *data = __Pyx_DecompressString(cstring, 14011, 2);
    if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
    const char* const bytes = __Pyx_PyBytes_AsString(data);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
    #endif
    #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (14777 bytes) */
const char* const cstring = "x\332\355}\313\177\023\307\322\250\271\307I \230\004\003I\310{\354@l\203,l\014y8!\271\016\217\204\004\010`\010\311\341\360\215\307\232\221=\2614#\317\214l+\217s\262\364RK\335\235\226Zz\351%\313,\265\324\322\277\373\027\360'\334\252\352\347<\3640I\316w\356\357#?\"\317tWWWWWWWwW\365\344gf/\344g\026<\343\352V%p\302\320\365=\243`y\236\037\031\313\216\341lX\245\252\0259\266\021\371F\245\026\255B\356\275\240\352\030~`\\\263J\241\2237\256\027\215\232_5\254\3001\252\241\353\255\030\321\252cLX\236=\2213&\374`\002A'\000\035<T\234\300\212\374 \314\001$\300\274\217\020\2770\200\177N\030\256\027F\216e\347/[%\307\263\255\300\250znt\231\221b;\241\023\270V\311\375\3111\306\257\370\006\246\025\254R\t\251v\nH\237e\024]\247d\033\201St\002\307+8\206\025Bb\030\005\210\337\365\242\234Qr\303\310\360\213\2614\370\253\032\2367\276\004\274\032#\\@\341\031\3262\224\260\nPc\311\nCh_5\324X\344\002\225\2142;\177\255\352\025\",h\373\005\243\\\205\352\n\276\027Y.\340\300&\024\002\267\202\331\275\300\302j\271l\005\265\036 \301\212\351Ye'\224 \233\320\322[\367o\334@\342\253\236#9\022\254T\313\216\027\031Q\255\342\030_Y\341\352\302\312J\340\254@w~\343\004\236S\372\224\375\221\345_4\370\1777\241M\345j\331\360\252\345e'@\226y\2767\355U\201\337(\017N\010\215\246nv\275J5\312\033(\003\370\312\340%\232\254r!\260\254\344o\032Ke\3273\013~\325\213\226rT\326\257F\200\013\001\020>\377\342Ml\263\343BV`T\220\355\034C\021\245\005[4\001]c\033\023\241UtH\204\010\310b`\014\312'f\207\023\267\374\310\201:\254\310\270\314$\030*\261\235\222\273\214\342\350\224j(\020.\260,@ \317\270}\365\366\364\205\217.\020\372\300\371\021\230\031B\257,S\347\003\001\320\252\345\252[\212\220\005@F(G\200\347\360a\202\204h\005\240\t\236\021:\221\030\030 7\026\022fBq\030/\023\206\355\006P\211\273\341`i6\252\210\207\3372\372\2511K\205j\271Z\262\020\312<\263d\024y\337\207\371\027\tt\332\320\362A\2042\023\315\302\252SXs\354tf%\360\273\244v/S\266\2662\022]\217\021t\333\n@F\201\247!\003\222\377\321k\030YAd\314\033\2130\206\255 \007\275Q\264\252""\245\310\270\345{\216\024\237E\004B\205\242\272\0249\250j\343\n\205\006\356u\2225\007\273v\005\262\274\234DcI\354\014\217\355T@\275 ^\237\t\261\304B=N\"\315\206\014\340\002=e\263\316\010\327\334\212\211\242\031\002\335\313\276_RTS\227\311\372\036`w\0271\211\tv\321\rP\222=\022vPM6\t8\"\007\376V,\034\216\274\212\236\235\016\375\247\272=\377W2\031j\002eS\0066\020W\376\333Zo\273\324VP\206T\036\273l\240vc\005\246(\001\344\302\350V\324\216\227\255pm\\\222\373\025\250\"\030t\004\355\030\254\2011\335&!\027\n\005\247\202j\225\353!\234\357\0302c\2225\t\341C\303)\273\021\310\034O\342\230\240)N\250$2\010\254\332T\316\030g\325vA 4'\224v\266\214\212\017\323\025\315\256\276&\331J\265\212\2724\246\261j\2720\327)987Lo\2720\023[b^H\351\225\336\234N\013\254\353m\000,\250\016'(s\371\331\247\324\202Z1Y\223\347q\206\376\340\202\352\273\351Y\331\364{\320T\200\214\267\235\r]\316m\354V0\020\374\315|\254\020\230\026+\321**q\222NN\331\377\375\355\377\204b\006\332t\201\247\3138a\270|\3221*%\230\361g\025\"T6\310/\030\2279\035N\024%e\357S\r\361\372b\024Jt\2404\021?\251\237h\2374\nh}\322M\325\304(geMRm\363\306\025+\262\356\301c\027\275\200\274\262\001\204iB\241{y\365$YX\023\357nC\353\356\030\227\020elz\027\204s*C\020\004V\203\025\246\311\006\353\014\247\177\024Q\305+4\013\000\001\030J\356\212\347\240\276\216\234\025\234\272\001K\336\000;\026h\002k\3146\234 \000\252E\205\201S\361\003\034\276n\221\365\030\302K\254hu\200\361d-\227h\016\016\301Hu\372u_\227\201EF&cPXr\013\203*-\241\254\2419\212\2014\014\210\036\314\344\350\000\304sx=|\024\207\306\244\353\025@HA \371\200\207&T\000\035\243\314*=\004\274\217\272t5\364\023\2332\271\252a\014\250\310\372\300n\232t\266\342\350\305(\000\246\361\262\002\232\030N\345-f\361\300d\2337&\301\006\273^\2560r\035{\212\323\350TX\223\025ej\210/\002B\207`X\225\201\023U\003\317,\272[\216m\206`n\233\304\002\255\2158/uk$\314KdJB\343\030\"\220\240k\210j\0210\335\000D\013\330edGD\270\2761a0\232\254\035\270\010(F\232]k\305\230?\021r)\311\361\371C\210\234UAC\203\331\204\205""\300\261\310\010U\024\005\316:\314#(\222!k)\020\222g\343\2167\000\244n\t\033\261\304Pr\272\305\270\221\210h\374l\256\272\205U\262\344\321\374\244q\321\315\250@\342\315\"\230\025\221\243)\347A\204\024\314\324j\200R0\210\021\200\313D6\366\265!\001\274\3445;\266B\007&8X\007n\211\026[\010\227\\B\020\006\265\204\200f\224\273\232\r%\337_CA\304g\\N\341\342m\320QXA\322\200\307d4(I\0248d>\364(VCu\300\262\325\265\205n`42\312@?\201\0321\013V8\000\277\204p\202&\305\326\001\345Xn\032\220;\200\237\254\335\262\025\025V\2734\272b\331d\3550:\007\233\2757]\033T[\\\345\\qB\027\2154\336^&\330y\316\033;\323\2402\306\265vX\021[\001\261\211\214c\331\204U\\\336X\\\365\253\260>G\345\017v\372r-\242M\0044\200\310\266a\225\224\034\3133KN12a}\344\333\266\251j\2153\020\245+U\257\3553\365\016v&_\272\003\nm\025+\220\025V-\\\317\003_Pq\022\247u\211+8\334T\345\360Sy\340\013U\313\255\n\350Ym\375\200\344\002\236<\214^\006\257F&\252\277\255(\260\3225\213\302\201\273\262\032u3\322\226*\226K\323\337\322>\r3\220\"\327\267\273\353\326\333,\237\206H\245R\252\211m\033^N\031l\231d\005\240\033\375\262\261\002\203\230/\277\006\241I\355\223\004\2140\354~}\230q[\\\301\021IUP\241\001\2430^\257\037\304\246\"\313\223\246\200\\\003\032n$\026q|7\310\021j\203\227\032\017k\240\202\313\343Z\031\352\225DM\230\255\355\363\220Dk\323\001C2\035V\234\202[t\013F\350W\203\002\0319\223\253\260\272,\302\264P\243ie\212c\366\2340Tt|K\203_[Wp\023\246\033\373\235J\311\242\271\2264\002\216V\241\240\302\177\277\226c\324\320L\230@(F%\207`\002\306Q\223J\220\366\276\206#T\262\301\214\307\256\326)\024LlRq\036\350u\302\350v\254\202\352+\215~c\262\352\225\\Xl1\243\020\361O\365\3458M\325\341\237m\321\241\205\325\305\200\353R\272\217y\266\277Na\366\207\352\222t\373a\361N\352\213\361z\260\366C\211\025W\364\247\352\307\031I\312-\331qE\324\211d\303\031\274\020R\210\225\302\003o\021\276\231e\\\245''\240U\253T4#\337t`\370\252\271\350\256\240\231VU\2563\275\014&\030\031\006\210\244\317\272\336\3667\275qX\240W+\370\033\371\233V`\207&h._\177w\275\"*""\205\332\270\332lb\304\210\342\364\302pp\"\343\210b\211]\261\211\246\251\00283\216\017\330W4c\301\262\251\024\271`~\017\266\004\347\300\300i@\002S\002h\264\304\036\322l^\365\343M\001\256w\2326\335[\2744\3664_O\342\366\022\314\034\260\334\222XP\374H\032\325\266\265O\0137\304(\264\3663)xZ)\330D\223\\\014I\266\373\266\341\342\342d\271F\363b\301\367ln{\017\262\020x\326\017\373\354\007\260\017*~`\225\344\334\271\277q\330\305\216S*\024\317\3122\324&&\247\272\310\266j\343\261\251\224\240`\252d\213\310%Q\357\022\n\212\303N\303t\273)\263\223j\216\025 S\326\2530\2639\364X\366\275h\025\0376\035g\r\377b\305:?\301L\"8\327\253F\016>19di%X\364i\257\205\300\027\257\n\203gy\"\225\221\2075\2314\271\206 \236\036T\330{\345\000& [\247b\301\220O\313`\232\337\244\262\237\240ap\215mfC\342b\025\023YE\005\307-\231nh\262\243\243R\315\\\241\025~\320g\245'\353\303\362|E\217\206)\327r\3342\241\263*74\004rC \247\363)}\023\201\037\300]\303\035\335-\0137X\346\t5\212\334\354\307\037\316L\317\314\302\277{33\363\364\017\005d\316@\276\203F@\375,\021\325\350\360T/2\307\213\000\013\370~&\035\374\342\000\316\300\254(\222\340\332I\026\0234\\\222\301j\303e\233\263t\226\203\\\224CC,;\200\327%\301f~\026l.\303\032\3156}X.\271^\037\036\177Q\023\031|\353\221\025\202\3323\350\316#8\020\314\366\326ic\2205TI\231\034\303\034\221\330\337Yv\340\215-\004\213\264\246-\3018\001\305\n\213\000X\361\027\364Sl\305\205\253\371\225\374\274\246\026|\321\033\210\024O\305cXQ~a\341\302*\346:#\336DP\246eZ\354\n\t\212M\367J3\204`_*\026\365cD6\333\261\323b\234\241\272\345\016\253\"\300K\250%\252\234\255\225\2550\022\322,\321taUL\250u\216\351\255\003\016\351\370c\334\323\007\n\351\"\\UH\216w/d\310QN=\266\205\332\0165\372<i\t\032\001\\\313\221\352\303MP\261\304\024\003\225\332\235\3237\002\002\247\210\233\312Do\006\3132\351`D\003~e%\001\001y\343K\255\026\204%\262pt\031\250\205\025\351\352\340[\350\004:\323\026\254,\343\336\003nIx+\260\010\360\3319\240\037\330\254\353R{q\036\340\2165\220\027\215\251\037\205\375\007\370o\272\\\236\266m""\343\374\234T?\022\333E]\360I\033J\332\220\037\252\364\331Ycf\226\227G\220\"\254I\003\035\223^\221\024\346o\371\331.-\255W\261\\\034\243P\210X\275\022D #\307i\320\253\312.\233g*\255\000\214\"k&&o16\226 \333\256\2614\207\233Y|4\247-\206\2527\r\243a\177G\236P\310\204B\335\317v*5\250\324\337\314\203\0351w~r\252\3131\017\027;\216-\214\021\332m\342\027\230\177\006\324\263\037LN\341)\002\325\221c\307w\223S\277v\261\215\370\252@\034>\376\201SG\300\204\333\n\317N\032\273\034U\211\023F\265e\365\007N\032\367s\030\026:%\364l\341{\300\240\237p\336v`H\024\335\022t\313\340\307\371\034\221\357\231\313\316\252\265\341\372A\332\252\r\374J\352`\037G~)q\260/qI*z\257>\020/\036\326\227\335\210\\ \272\331\372\177\321q_\357\315\241>\033e\377\206\263\275\2478\312K\263\016\254Bfy\370\036s\332\323\366!\377\310\236fjC\223j2\304\3266\252\000J\031l\333\361fz\313\221\025&\217\n\013\326N\003\355/\006\016;5\037\370P\210\013\204dR1\360\313\202\377HE\262\352\204\321\215\3464\214\004:\020q\212E\020~$hI5~I\034\200#\221\203t\021,\024#'\254X\005g`M\373\214\315\003\261\031\253[\242y\327D\213\314\344\372u\237S\033\263>\222\032\322\n\013\314\363M?\261\303\025?\003G\016@\225\312\305\263\217bT\350pi\357\310\267\274R\333\211]h\235\226\010M\014\235\020<\264K;`\031\241\334G\014\311\201\243\037Q\021[\376#M\274\216\236\234\016\303j\3311q!\363\023\235\264\357\213\315\242XB\353\334\023\311h\030P\005\262B\315\251\314*/\273+U\277\032\246x\023X\260\200\3546\225a\235\320\302r%d\226=\266Z\241\342\254c\265\332\222\300>Lc\025\342\034g\005\270<'\356\225\300\316\207'\336\233\200d\313\005\r\236\321\225\373\"\327\366\275\211\310 \\\177\031\261\331]\275\354\242W\234\371\243\357\202u\313\\7\314\370\331\352\340\346\0105.\3530\\\031\t=,\221,'\352\260O\253\025b\334&[s\311$\341\2078\372\210K\235\374h\304i\333\261\032\024\237l\321\013\022=\017\221_\272;\"\252\260X\233\227t\257\251\004\t\331\234/\300\242\177\277#\313\nV\234\014_5\237\373\372\304,\355\333\265\005\\\202\2605\014:\333\340&\203\330\001%\313\034\324hd\3720\035\024\321""\367|\260\tA\234&\313b\270\300Fdx\376\213\273\351X\r\331{\252\032\024a3\202\365S\001\275}\006\234xp\023\205\355\032\241M\312K\213\350\203A*\334g\303`\275\347\234\243Z\003Z\371\357\247\2016\220Y\266J\373m#/\366\324\315\004\362@\231\357\263R*\004\210\246\311\277\344\251\353\346\207\361f5*~4`\315\3508_\345\276z\314\031\221\n\323B\273g\215]\306\017\205I\354sq\233u6\203\026\212I\004%-\000\256jp\360`e\373\361\201\326\220\346\370\233\320SV\367\305\0225\314\006+\307/\232\270}\265\317\346\021\225&\032ht|3\340&?7(i\017\216\214\273\031\315\305\224\245\314&\317\021\272\257j\030\347p\213\326\366Y\230\007\333\210c\305h\301;\311\316\021.\315\346\370\341\301\245\017\265E\026\315\014jMO\241/H Z\262\241Q\365,2\"\331\031\335R\242\305K\275\370J>G\205\010&\203\025gk\237\234\315^H\335uV\252\270Y\343\250\330(j \006\"\331 \303\225\250\0328,\002+\034\23020\213-\357?\212<Z$\357\223\"\326y\"\314\"61\361\323\034\260\253\301V\001Y)\n\237\245.\265\343\261\343\022m\3160J\350u\177\236_T\245\211\333B\363\306Bl\373v\321\241\275b5\3225\337\236\344`\0378\334\343\272<\037\3130\335Q=\010\027%\236\241\310\373\261\032\252\255\217\222\273\206.\332\254\023u\357\242\304\360MWQ\332\244\301l\271%VU\037U\n,F,\373\265\371,\317\344%\237n\356\271e\335\322uf\301'o*\021\r\323\213\340\262\265\346\340!c\265\260\337\031\200\244\235E\n\342hAoc\2179\245\351#\347\026\345\013w|\252\207\217\023\345\266\234\327\361\001\275\326\262\013\313\331Z\002+cK\312@\273\245\025p=\364me3\257\\\313\353\225\306:\335\007s\024\264_\016\347KA\223\305\027\211\350\251\257\223\005l\260hz\215\323\364\215S\373\016\331~\223gg\320'\262z\021\324\255k*&\216\241je\237=\003\364\301Bd\315\251I\255\201\033\"\337.c\250!;N \021\001\263\214\007\336f\250\026,\235\241X\374B\241\032\260\360\327\304\232\024\017Cd\346d8\245y\302\313}\216\233V\245\367\\O\321\\l\275E\177\201\354\276\223<Z\"\373\035o\203x<\330.\032N\300\261\262\037F\323\005\277\\\006\251R\332\215\265\255\027a\025\214|\243=e/Z}\312\215\226\212\273\341g\357\343B\n\333\227\007qt7\360\2043\342;\030*|""\206<\"\t\003_\220\376U['\262\251\177\366\376\tQ\017\313h{\337\247/ \300}\225\323=\311\037\024w\006-\303\233ySU~\301/U\313^\342\374\030\007401@\345c,\311J\227r\350aO\005\224\347\031E#a6\371\2750\355\243yZ\350*\222\235\216\010\037\033A\023\216\351\356\007\024,\036 \356y#\201i- \333\302\266\t\343\024S\377h\201\224}:\222\327\226\023\033&q\267g\231\253\305\213S\275X6tQZK5\036\301\220\360\230\026\373/\311\222\224\016\\\005\235{\025C\257z\211\315z\325\302x\217\375\352\205u\340\251\355W1J\213\016\227\224\324\260T\315\3134\177Q9\273\007\376\262\230\201J\316\206S\222\363\235 \203/|0\344\025c\310\324\016\215\2106s=\211\355!\254\031f\037\361\010\017\354\211\212_b3Z\262\277K.\236\230\2476\202\370Y1z\301,;\021\254\030<\252\332\241-g\232\211\310f\010y\000\013\035\301HJ{v\372\274:\251\235\226\325\317\213\206\t\017yIp\014\030\026\244\010\313\355)tD!i\207E;\260'\022\014\2136}\235D\035\303\252\273\262\232\205\242\204;9\003a@rq\023o\236\237\320qW\014\001+\275\242\n%?tBy\356)X\243\243*\2736\225\321Z\217\240\223Uo\323A\247\007\307\2362\312x\016\331\203\252l\311\r,o\277kU\332\307\247!\022\327t\2238\256sl\363\035\246\343j\005\005\221\305D\364\336\264\2276\033\231(\347\270\032\243\032\304\036\276\232\004|=\024\276\344\213\243X\346\030\205\333\376\244\"c\230\320\363\214\007K\3668\003\240\223wB\2614\310y\200\320x\354\226\016\322\262\334\324\221\347}\274z\312\363\365\305\234F\004\036\330zt\036^\252\345\310\353\n\261\204n\271\002\372\212n^\320\350 \373D\243D^\t\242\007\351\270\261\343l\356\3640\215+\222?c6\376s\0171@k\220\372\3108\334a\246\231\304{\331\367\212\356\n\256zWQ\355\350\332\006DP\372\241R}lk\332\336\207n)\273\036\014\255{\210u\205_l!UE\305\207>C\025\215C\005Y\300e\211D%\037\303bm%\261\010m18\022\326\356y\343.\000\262\346\200\020\210\320`\345\206C\363+\261\001\3032-\261\350\225\230\264\377\270O%\235\3519^\010<\014EP\220\250\001\367x\220:-\3569\013\223\356)\021#\332\006\274\016\266]\242\305\255\020\272\252\0022\214\207\2639\343\346#\246\255\241\013\220x\250\365&Jg\027\232\275\264Y""\234uSK\037\305f>\345\274\374L\303=\323p\177\3511m\270\346l\362\215\261\265j\020\371\241\033.\375\321\273*\030\342\247?c\337\217\320\377O\027\354\277B\302r\314\341B\305\257*\217PFMx\216o\032a\235\264\366\245\025\225\354\267\245?YF\243\240\210\247j\373\335\246\243\035\261\024KN\3770}\272<}\332\276w\372\253\371\3237\347O/*\356\334\346[\340X3+\035\261\243\246dhf\311G\317\352\024\352\313\n\325\r\006\001\242\207\346:\213\236\307\024\025\312\312\311\343\357\024\373\327\223\005\225?\310\202\314VV\254 TM\024a\236xe\210\364.\310\031a\025\006\003\244\001\353\316\235.\237;m\217g9B3\007\3002Ns\005\271\016\344\004\024}<\230\243\224\313\347.\237=k\210\366\344h9\036\321Q3] \026\363R\270G\322\212\"c\273E~\371\034\311\255X\334\347\330\336\"w\220^\345U\214\237\256\215\0334&V\375\222\255\271\3033s,$_\356\220\ry\212,\240\340\217\242_\rx\220d2\302'\346\177B\\\221\016\342\352\006\226>2\037R\260\r\375V\351\327\0139\033\351:\225\304.8\254\240\272m\204\337e[\213\004\014\014\023=HX\310\251 \342\267\010\262m\003H(\252p\221\256\322U-D&\r\352}J\230\360\203\2357\360\252\217\207\200\351Q\216=\342=\004\241xa\227\244\250\373\377rtM\001\312\026\016 ve\240\032;\3746A\201\033\351,\254Z.\352\031\246)\331\346p\274\367\227\036^\300\375\203%-\356\0218DG1\325\n\227N\212\305\363\330\335 \014\0237\342\212n\021\375o\253\350\200\337w{:\202e\002\2373\231?\031K\330\337\254\271\214\276\360!\335\001\227\325\347\211[\030\244'\035+ 8\203\222\205b\214C\202\360\345\345\271\021\321gy\332.\033\355\235\222\3731;T@\370\234\332'\243\203Q\250\236\330<I\033\200\201\017\225h\267)Y5\243\020X\341\352TO\356\300\030r\366\355\226\362\227n@\301L\026\370[n\331\312\336\204\322w\"\365M(\333)\321\271G|\303\\\213\310\272\354\227\345\251hE4Or\342\3364\343\004X\030+~\000\275Tfh\227\253\250\313\350\242\235$\362\213\032\362/\010\214.\257\351\2132\273'\3205\302\364P\003\343\335\nO1u$\264\337}\317e\227\271q\224\362\270\251\334G\367\335\272v\0315\336\255k\337\360\277W\340\017\274]\3519\355oX\201k\201\020\360\241\026F\266\355l\354w\230\3316""\010\304\000\201\362\266\263\0228\334\200\204\007\333\357\311\331\247\360\253\370\367\305O\366q\340\350\0226\211\276K\241\360>\347\265\025y\334\023\233\340\213\026\371\256\211\240\010t\005C\332\222\367\243\301\210\000}Re\263,\363|\233\311g\034k\003l\215e_<\217c\376\342\034\323:\344\351\241V\335\203\3275%\216-\2030\"\317\027\234S\351\206\020X\207\230D\315\200\274\320I\230\241k\221\350\236\021P\017_[^\325\njY\355\261X1b\025\305\233\241\337\262q\305\001\313\034\361\234\3778g\314\315`C\347fi\257U\236T\253X6\n\313\217W.\355(4\240p\236Wqh]D\023*\006\325\260\357\361N\373\324&\371{\003\233\350\224='7\266X|X<tGhX~\355,\213p\266J\261\375/\356\303h\253\345\225(5\021\352\236\336\325J\345)+\267\226\375\r\347\217U\236\346\243_9\267\354G\221_6\326\246eL\313`go\211\023K\245``z\267\345m\240lM\312\366\342\023[p\262(\273\367H\337\272\023\373NE\266\234e+Ut\025\325\326\225\261\310H\355\224A\370b\2110\227gK\354\201\227\330i\371\010\334r9q\333\025\235\364\357\347\252 \255l|\226\275\016\324o\2706\356$k0L7P\315h\273\n\277\002q\003[&\2354\377\343\034\000\226=\372\302\374\373n.\233\321\327\324\211\373\271\222\367\225\t\253B\273\257\354E\026\035Lv}\234Lz\371\354\263\317\014\027#\333e\364\245A\267\363u\311\314\313c:\000*H \3103.A\251<\331\360\223\017\307gQ~\246\317\343\357\331\271\361GS\022\322\257D!\202\026\362\177\007f^\003^r.O\022\273.]P\240\000\023\347\372$`\027\2761\341%\3044\225\217|\263R\303\213\367x\270\350\303\211\231\231\231Y\274\262}zf\346<\376=;337\361H\365\352]\230OB\212\212\306\355\204`Z\230\351x\203\237\355`\373\374\220\266\315\323\367\315rn\322\236\373\302\355\3538\310\256~\177\373\352\335\3537\257\336\272\267p\203g/tGE6\236\270?\200B\241\345\033\315u\316\226S\000\356\262~R\365\313\273\237Cq!\333&\254\306EL,\0358\262-SQ\215\020\343\353\036\217-\336\204A\036\346\006i\243\2723\236)7\212D#K\005g\331j\3319Wv@\205\236\003\246\261\353\3170`.\3249\203\353\242b\004\223\r\205\233\223\246\0221\305\264\034Ya\267k\306\230\302\316\016V\002\277Z\t\371\225\n\244W\310\246YfA\351VA\\4\215!\201""\270b\327w\214\221\027\234\n-\240\234<\211\320I\200\0068\222K\301\3165^\210k+\336dg\253\200\227\243\2377\276\374B\230\355t\203\253\267Rr\004\335\306$\326\314\010\305S\333e\224\235\251\301V\001\300a\030\335\370A\000K\277ShA&\341`c.6\342\252\273\230\204\306/\274S\3128\240\213+\371}D\354\364\205\356\341w\266\264td\226~\231\354}\273x\231\301\304\320\261\353\350h1\207+qY>\344\007r\334b\2256\245\266\336\2438\010\274\263\236\250\205\3253\307#o2\345^d\302\0032\036\211\316\357\374\325\210\3619*\272.?\000BB\311\201\234\270G_r\216m\233\001\305j\212=\203E\330]\245\2348\272\374\236\364?\321`\360\313\361\331\376\010\305\221\340\001\\l\326\227\303b\305\211B\252N\234\032\210\034r|I\314;\267h\372\213\307+\363\263:\202\026\036\033U\317]G#\031\315\223\304=\014b'\231\266\217\271z\227\304\004\\\207%/\371\213d\rb/&^BX\333\222v\374n\303<]\307\255\211\243v;\267\317\334\375h\020\223q2\316\277\3740nL\002\272\251\\,X{\\\373z\004\007\020.(\\8\346\215+\200\374!\315p\"^\346Qv\325e\253R\241\370F\321\004)\312\314\305J\333I\207\226\272x\377\035\356\377\322%\244\002u|\244$\020\210\240qRS \023\374\036E%\223\300\034\202W\256\240\311\376\314\032\010j\304\210\355h\333\240\016\265Q3\200\255\303\017j\345\225\266\252\240\033\325\344%\330\311\250\"u\017#\013y\327\257B\210+\006|3E\177\003\006\361\005\216\273<Ia\342^\246i)\021{\355\374c'\362\306\021n\223\254\224\374e\253\304\366\227\007\267/\200U\025\272(\306\253\374y\246\207\004\246V\2438_2~\3765\225\372P\312\355#\000\030\247sJ\030\206\216\355\302<S\265\213\343\031%ta\246R\202\000Vl<E\002\260G8\362\230\014f\262\020m\345\370\025\367\363\004\227\317\347\ruO4\232L\354\202\211I\257\222\347e\030\370Tv\013ip\003-\225\232\031\257J\265@\0166\340\3048!\033\237\307\212\304E\027\312\026\023RF\246\033\255\024\021@7\300\204\2421\245\241`\na\231\214\327\237S\364\345$\023s\2616'\035\030\030\2319IGv\223\231\265\210qv\262fY\323T\0142\357\211\013\247'R\354\231P\266\252\027\302\352\234aE}\236\2016g<T\266\354\371\231\234qa\346\321\224f\3042\024\364\372\251\220\316+\264\265\312""\246\270ycn&?\243\232\301\3340\210\313\3648\251\241\237\315\031\360\357<\374{4\225\323L\350Y\250\026\253\236\023\325\347\230\332\272\364pb\r\315\332\215\t\215 P}8./\261\232\362d\236\230\313\265I\000\235\312\313\256\233|8\t\305rY\334\231J!ck\022\336\270{\322`Y\343\267\220\2600\0163\205I\354<KM J=\204\226\236\177\364\250{9\000\270\230\233\273\370h\000S\235\337\311\262_\263<Q\254\227\001.\\\235\345\255\376q\023\234\372\2109\211\020\316\220M\341\352\022I\211\265,\002H\226\035\241\033\360\376\240\315\351\345\3324j<\026\000DQ\375\221\303\315`Z\315\363\233M\000\346E\036\305*\213\223I@\313V\274n\240\340\0078\363\371\354>#f\327\006\342\232\227\344\002\000\215W9\r\362V\254Z\033\216\362,\346\267\304\277\250_\300\022\373\240\202\033\306\276\213\300\257[\341_F\220\223\037\253~1\316\r\266\227D\030\251\t*\231\307\032\272\036\013;0\000\251\313\357ZP[\010\34133{\0003\333c\021U(\234\211\210\014\335\360V\006wW;\335\325l\032Ml\270\3675\277j\325\301\34317\233\004\355N\246?l\314/-\2219\277\264\304\314.\332\305\026V\275~\373\2170\213\330\376%U\224\266\314\236\336\200\357c\230k\237M\210\031\350\317\014\363g\206\371\177\256a\376\337d}\017jv[\266Ma0\320d\213]\270,\246\331l\023\034\340M\001\335\337\000/\344\001\236\331\334d\211\225\235\262\037\324\314\212\357\227.A\341\274\366\336\337$\307\2521\355\017\033\343<;\323\024gmWf\253\336\336\3778+\\p\344\217\330\337}m\357\222\273\234\277\216\034\3433\037\323\2150\207@\233Y3\036\362\261u\236\035}\r`cn\000\n\177\3776f\242XO\033\223\301v5/\363\306widjg\225\2351\254\362\300\034\034\232\030\340\217\367\326\024]~He\224q\337Tz\3111A\344\032Q\031_\223\260`\310\347\344E\207\236\332\231u\236ml\376\317\265\270\264\355\323g\326\3263k\353\231\265\365\377\251\265\0053\013~*\212\"x\366\265\315\231Y0fi\351\337h3\301\234c\326\326VWKK\207\237\334\352cN%\221\367\267\251\250\304\244\262\236\236\312\272b\223\2622J\222d\374%\026\326~m\"\3345<\377\010\222\346r\306\205G\177\242}4+4\331y\3610'\036.h\226\023\233\257\222\037\352f\251\342\205\351m\376m\354e>\235\347h.!/eh&""\373\230\223\205\223\231\023\206\326\212#>\037\016\272B^\237\256\357\377\300\354\036\252\313\234CQ<\257}x\335\324\340\305\300M\327c\2736\373:\273\370\\\271W\323+\242\220~>N\021\007N\223\302\002\243\303q\374\2646\233\016\302j\205F.\352EYO\376\276'\276\322\2111\203\327\320_\346\256Sd\233v\312s\273\273\023\350}o\315\3637=\251\264\346\347\277q=\373\276\307k\223\337` \327\224\354\310\376yu\t\301\004\013\221g\337\260'W\366\211\234\261\002\355 v\342\224*v\364\324\367\3009\353\346\271\021\312{5\025\360\361y\316\370l|r\212\331\322h\354\003{\234\ty\325\343\204\n~0\304\325|9\246\342/\3054\235\374(\375\247(\354\227\330\226\251\213\367\372\367\373\250\036w\347^\245\217\031\024\320?@r\007\277\343N8\272\370Lr0\271\261J\027\030\333\016YF\270\253\312\357_\266\310\n\247\333:\354j\301!\234\232\177(\335bf\273\344P\341\260~'/{\256F\305P&+Y}\030V\230^+\005\251\316T\246nz\024\345\334\247\177\233N\305\031M\260\357\272A\217\252\217\313\261\001\206\327\274\256\022=l\304\177\302\372\234\367l\236\177|\320\"\231\305;]\260\347\201-\325P\371\200\350\337\223\313\217\313/\320\032\354\2768\020$j\257\2353\326@</\301\254n2\226$\274\204\345`\226\337\351\245O\355\334\363\305W\231\270\023P,\234 px\230\212\326Xt`q\312\225\2506\241\335\365\231%d\024\322!n\247\247\227X\216\214\362\2427u\327\266\n\206\001\213\006\206\023\n}x\211\214O\266\242\322\265\213\330\265\306hFa\355p\255qN\034o\344+\265\255O\023\263z^z\\\306n:\350q\326fL\342=\t\306\334\371\331\017\246\272\355\003\010\230\231\213\037Mu\233\315\004\314\354\334\307S\354\003\002(\273\023\314\203\226\002W\350\213\346(\371\245\032p\245\230/\230b\301\245d\"v\353\217%\243\215\330\254B\221Pna\rYM\030\030\023\237\2728w\367\312\321\313f\200q\321\366S#\223|\241\301\370\307\260\300\330|Z\004\177\244\031\335\357<\353\026\346\202E\214I6\005L\365\374z\274\346\200\r\363a\374\343\360hl\003!\005n\266\363#!\372\214\n\372C*/\332%rx_RC\3752\367\332\332\020\243\234n\365\304\240\257\311(p\360FC\213\\\253\246\2306\016\235\310$;e\021P\362\022\375\336\363\246\211\212\3124\315""\214\034\246\265\315\002\3614\033\004\352\244\003\270^@H\227/\253\3677\257\363\0337\027\350b`q\233\262 p\340D\215\364.\331)\372\273\300e4\"\033Rk\311\027\250\004\224A\022^\276\014\346\031\0074\265g\355Q\021\034OL\222\031\317M\023\027\313\327HJg\204V\321I\247\242|\245S\253^\n\032\277\177\005izR\362]\224\302\271K\264\270\313\263\326\374xj\252\375\361\354\014\006\304\0004\016\244\006\214\231JI%hded\245h\313\200\311 0\r\225I\345b\265\374m\3674E\331\225\253\267\357\2327\027\2774\257X\265o\213\017\034g\215\203\364{\327P\244s\222m\313\000I7-\r\244K\340\025i~]E\013B4\177\177\311\032\321]\001R\264w\205\314hB7X\275%W\331\256\353\003\260\324\344j\215\003>]\226jUo\240d\313zC\247[\327\023^k\241\322]\352IUo\352\211hq\353\357\332\242QO&\343SO`Fi:\235\331_Z\n^\222\254\275\322\276\262F`\236\342\310\344\242U\313\300xe\313K$Tc\324B\nM7\261$W/\023\371\n7\264\233l\372\273x\201\255\350\324\201\222\264\376\315\314L\365k&TF\177f\301\305$U\003X\254X^\006\211\375\223\263\251\217\003\364jA\034\262w+b\260zK\256\321\367zxV\367\027Ek29Ia2?MW\002B\243F,\253\305\337+~A<~\033\207\350Z\177\032 E@\022D\033Z\311\254T\206\330\217M\276w'D\203\350J\211\204\321\217,S\231lsO\234\204\211lM\177\310$T\036_\301rZ*#\221\023Kd\273$\031I\351\306d\003\245\273\226\356\351\344\314\353\366\254D)\221\232\224\244Dv\357\332\342R}\335\243\357\324\334VwIIB\366\233\241\223\333\035$M{w\330\254\206t\205\326[\365\265\357\212\214\354GEk<1I]<7MO,_\243\200\365|7!\351!\027x\261\3035\266-\315\361\016\222\242\232\223\231\227lU&\320 \264\304\271\214\371\364u-\215\256^\357q*\0239Y4&@\262)\214\003\351\364\335\264\326\234E\332\376\340\331\375\023\024\211YYI\032\263`\322Df@\305\251\254\334\240\273:$M\275\337u\022S9i\nS Y\004&\201\342\364E\205U\266\005\356z+\222\250A\023ur\263\263\3234g\303e\021\236\t\251Q\217\027l\013\225n\336T\346t\366\243FkO{\376f\037\033\376f\027\273\375\326\265\313\267\256]\301;\036\360f\007\274\234\\\254\004\265g\355Q\321\023OL\322\023\317M\323\023\313\327\373\366\266e\363\364\254'U},-Y{,3]\271\236\035\257\333\245p""kYm\257W\235\224dF\232\236$D\026Q\t\2308e\374\302\352[\321\252$g\220$\235\312\254\3144\245YPY\324f\300\305(\306\273\233\037\340]\t\202\270\276\t\032\255\031Y)J3`2\350LC\351T\232\267k[\360?\256p\315[\316\026\330\333E\363\016\3373\347\005z\277*\232\323\031I\212\323\020izS0:\265w-\317\366\305nG\367\027ES29IQ2?MO\002\"A\315\232\252>\3431F\307ZO*\326\372\320\260\326\225\202\004\303\006K\212S\326\277\347\262\241\262)\355\325\203\302\005\360\276]\324\036\323\025\30633\352a\227d\350v\306`IZ\30333S\r\317\204\032\210\240DWq\200\304\314\270\277\3444\365\375\247\356\356\220\335[\321k\3726\351<\361\013\372x\236\240v\200\024\215\364\254\274\024\325Y@\031\004g\200\245h\325i\312xNP\326\207\246\276\324t\247\343\236\203\236GVI\247a\200\264\004}\351\334L:\323`]\350M\001\246\351N\236\035\357'5I}F~6\375\031\200\335Z\220\006\215\265\241\352]\365\354\330\316\355`I\032\351\231\231)\2723\2412\210\316\202\323(^\274\177\373\366\267w\357]\275b^\277u\373\376=s\341\356]\363\336\017\267\257.2\257\237\204G\2200\2453\035\2052\023\323\244w\003K\323\236\200\344\344\357'Uq\265k~\222\261]\001\007\245/\316^\002\211\263M\347Vo&\365\346M\244\366\006{\275\305x\020\365\334\221L\001\364\2537.\374\213\344o\361\215\240\242\307\233FS2=ES\022 \203\246\004\210\316\177'\212-m\315dB\362]\247,\352\267\272\316\000\311\242.\352\261\272^\\s6\005)\231\217\032A\261\304\024-\261\334\0142\364\374\030\005\232\031\321\355Y#\242\267\t\323\327v\351n\264h\247\362\331\217\032\021=\035\001\372\371\000t;\3767\027\361R\034Qo\227g\215\210xj\212\212xv\006\0311\200\024\035\374\nb\235\204\276I\t\342R\231\2314\246\240\272\220\232\204\213Q\314\257\237\026\244\365|\325\250Le\244(LAdP\227\204IPV\211\223\322\3435FY\245/e\225\001(\253\364\242\254Z\210\310\207TQ\3237%Fb:/\203\3124P&\241)0\235\326{W\350NU\236\327\353M\321\227JO\322\226\002H\323\225\004\211\321d\255\t\306f?j\244\304\022St\304r3\210\320\363c\024\004\256X\254g?j\024\304\022S\024\304r3(\320\3635\nTL\224\026\035\225B\037\313K#\277\037\025?\272%n\300\345\265\014\232\246\032\330%7""\331\322.`\203Q\025\347\376w\374\356[\236\331\373U\021\232\316H\322\230\206H\223\227\202\321(c\236\325\302\346\323\375\254\365\347t\305\211\334t\245\232cK\366\243jeo_\232~n4]=h\036\210\233SE\335}\3365\202\3229)\252\322 \031\244\245\200t\372\022\227\017\366~U\304\2453\222\264\245!\322\244\245`4\312(\230\027\357%wlt\020\247o{\223\363\260\t\303\322\361\310I/\373#\347Y\337 O\177V>\375\265\360\214O\264g|&^z\364\233\352\251lU,\3176\327\320\355\335\261\202\025\366\t@\014\002\024\356\320\322-\232<\376)x\305\n\371\037~\265\250\025\326\274\202\353\347\013~\340W#\014\013c_\261\020\337\265X\306\243\033\223\3352\302\234\371\265\333\336\227\253Ev\003\270v\017x\301D\n\350\227\325\215\217P{\301$T\360\247Z\224^\315\005\023\243q\315B\264U`\016>\374\217\374T\253x\247\246\025L\021\360\303\2370\225?\n\247\340\202\364'(\230\302\263\277`\312\017$\2122\274\273\341\201\007\005\321SE\276\004\216e;\201@\313=\226\013&6\273\014D1\240.\221\037\370m\014``\000\r\006v\2310\nV\\\217\302\212\360'\026_D/\221\265\\\325=\311\321\217\251\340\270%\274\363\031\267\334\320\031\334\\\241\217\354\006\352\032U\323\244\200\001\220g\376\260\342Dn\344\224\361\025\272\221\032\017\240\316\262UX+\224\302\202_\342N\366\241\340}\374rm\333\252\341\005\343\334\233\231\356\213\247\357L\251[h\265H5\335yK\017\37611r\302d\177\350\352WG\214&\023\273\r\1776=;\360\361\343Z%\027\035\273\3120\260\321\327\212b\005\034\362\331b\216[\261OI\340\325\220\254b\026\037#\335\256\264x\000&)q\361\321\204'\365eb\226\0208E\212\214\352q\325\266Y\364\203e\030\255.\213\361w\311\235\001\243\204L\372\201a\310>\rB\254$!\207\332b\276f\370F\037\211 Q5\265_!\266\364\202\221\232zLl,fW\276\210\"\272g\rv>F\307\211q\005\257\330\004\034\211(\250\230\315\224\240\220#\376\307$^\257Z\245\"\365\014=D\276\351l8\362\331\267m\376\270i\0056~|\274\210\332\270\026KD\001\242\204j\005\203^T\010\005\373\340\343\252_\r\230\003<\373\205\201\020:|t\212A\312\277\003!t\275\026l\003|\247\210Z/\232;\317\"6L\376\007X\037\013\341p\311\213\037;P\2523\372\\:s\360\343\262\304""\375\221\205G\037\272\361\341\270\t\327\244\222\300\020c\014\2501\351\007*YC\241\303\3109\214n\202_\307\362@%\026A\255{\310\037\223\337\035\314\264$~\206\005\377g\274-\271\313\354\033\233q_'\366\005\035\272\250\\\273\255\334\204\312\200\037\360\033\256\225\255-\370g\322\267.\360\201_\001N*\025\337\351fX|B\245[\266j\313\216Pj\332\225\031<\336\016\207\203I\203\202\353\0141>\312n!\360\331\267D\304\3270\313.\262\210'y2\244\310TO \231\360R\005\236\301\2105\331\217U1\361\251Zr\304\337\262\217\037L6\313\001\210\223\007Z\014\273\266\034\226\303\025\021\214\304\377\326\204\206\200v#\367\331/=\341\370\267\267\360\321\246\353\273\251s\264\317\254\303#'\036\325-\314j\036\373\346\r\377F(w\034\325\375G\001\271\263\211?[\221\026\300d\352\317\320\024\317\217X\347y\025/\244\257R\211H&3\376\206\260\230 b\233\314\370\233\310\216E;\351\035I\3572\372IN f\"\235\360\224i^\325\302\242\350>G\365\265nS{\204\002\0303Ex\350\201$\235\213\207\260\301H\024\304K\200\037\240\006c\n*g\366\004\305\222P\314\225\230!\265\371\221\313\273\t\202\037\342\377\364\217v\035*0\\}\233>Q\214\362W\361A.@CW\240C\340\201\307a\211\340,->6\025S*\022`\020\227\260\344\026\350\214\212\213\263\035=\243\310\204\300\013zc7\346\261g\256\346\360\221\"\024\350\251\352Q\374\216\303\035\272X\342\006]\326g\232\353\246I}M\262'\277\265\002\017\0014H~\205\235\3026M\366+\3147\251}\031\027\231\315\0208\320\r\241\273\341(/\306\264\231*\022\234-\323\354\021w\026\263>\272\005\236\311\364\244\035\2410\343m\037&\277?#].\021\244\306\345S\023S\340/c1\013%\207\241\264\005xP\357\230\250\325\002\207|\375(\240\215\324\001\330\254hBB\007\250\247\nj\242\242Cq\036\033V@b\003\306\005o\013\277\306\217\275H>0k\213\215p\014\334\222vFf\2641\231\372\\\205\304\026\0332\206E\206\255\250H\025x\342\026\217\266R03V\r\030\305\245\202\277L\355\221\354\032P\350\021R \276E\000\205Q\340\3603>\364\235\024\372\301\200e\302\212?n\001\224\360\252o\323\375\335\021\216\023\025\375\253?k\251<rT\271\231\253'\320\253\360B\336\321B\237\362[\010B \206\"Tq5 \030`\"\r\360+""\277\024\253?\202\366\210x\314\222\356\324\036\371d\302$\355\000\335\004@\334\204\037{\241\213u\214\201g&\375@=\254\023\252\225j\005\277\331\242}:\243\032\202\314\312^\330@{0\242\3704\3721\305[\310o=a\"\014\204x\370?\306\351\241%\247\276S\223\376b\r]w\317\003\001\351;$\006\351\233\371y\031,>y\273\366-\013\000<35$r\271\346\232\237GW\255\333\362[\205\275ai#\233>\024\021\203K\202\251`\002\272\264\004\277 \3174\225\277\374\243\371!W\210\346G\362\346N\r\376L\316\350^b\016\364\253\271Hc\t\253\r#{~\2361\354\323LR\277qj\237\031:\251I\344\225\210\346\242,\232\252\036\362T\215\003\343\214,C\227|P\301\251!\223}2\327\2246\370\020/\030\237/\207tt4#\r\231\313`\021\r\245\252\341\355\270I\246\317m\230y\2143\223}8\242\303N\r\251\326N\ndW\254\250Zf\241\271\306\373\231\020]Q\020\217CX\253\201\360W\"\305g\366!\254\317\214L\254\335\n\211\370\363}\026c=\256\027r\351\376|\236\013\343\252\032\252\274\276\024\307Dw\000R\007\202\007Q\373\016\307\361Mn\217rz\006-\316N_\007\207\346\014I@\367\224\022\321\"`\264> \220\225\334\340\300\231\000V\021\025\\\370\365\035)\204\223\013?E\350f\217\017f\317W\275e\177\313\324\314\371!\222z\033\345r(\231%j \020\266\037\023OC\376R\235\361d6\311\016\321\244A\326S5\224\000|\230%\260\361\3244>\236!\026\027\311t6\275\247S\251~\215'\335\365\342\020\356\2079\355\341\231\235\003\235\203\207\333\207\337j\\n\254wF\214&\274\216l\337l\2146\246\232\227v\016\264\207\337h\277A0\224\330~\343lk\366\267\003\235\341\303\333\263\355\341\327\332\257\315\266g\277\376}L\0249\333>}q\347N{xvg\264s\n~\236\274?td\026\n\217\030m\343\303\235\365]xz\277Y\332\031\333\231}rp\350\320\233\215\261\306\007\315\321\346Dkt\357\340\341\355\217\352\0376\306:#'\033/4~i\315b\312\207\365\211\306hg\344x}\276q\2473z\254s\364\365\306;\315\365\316\211\223\215\027\233\223\255\261\326\307;\337\354\256?>\360\344\371\241c\307S\231\037\356L\355\316v\316\346Z\013\220\177\350\350\366O@\337\330o\010\374\334\010\022\377^sV\265\2247\006\310\026-i\336\241\246CsER\256i\251\244\303\333\237\324\013H\334\033\215\261""\030\000\2409\277#\223\316\265F)inG\242\231l\216\021\032L\2026\361\324\261\016\342\205\214\306d{\\\203~\2779\322Z\000\206\317]\350\014\277\270}\016RN5\254\366\273\304LhC\373\275\013;\013\331\324L5?m\255\267\207\247Zo\266/\334\372\335\"&\264_>\325\\\350\214\034\351\214\274\333\370\271u\272\025\002\245\243\247\233?\264,J|\247\261\326\236\372\337\217\377\366\030(;\325\374\252\265\260\007\270\276\252_\203~\002\322N\265OA\265\002\375\231\3467\255\365\337\026:\327\277~\362\342\320\241#\3337\032\320\271/oG\330W\215\037[\007\366\216\216vN\274\333\370\251urg\024jy\355d\347\304\033\310\350\316\311\327;#\257\325\177j\036\003\361:\264\233\354\371\315\246\265w\360\365\306+\330H\344#t\376l\373\304\251\346\225\326\201\326;;\353\355\241\261\346(rb|{a\373~}\2543\374\302o@\322+\365;\320\3767\232\027\232\233-\007\231\367r\373e\020\304\035{\3674\n\010\026\230\252\317\326\221\221\303\300\201\346w \304\013@\367\221\231\326\317\273\371\337I\272\257\326G\333\307\270\004|]\267\352\3534,\336i\2544\357tF\216\266\217\276\337\264(\345]\244\221R&\232\353]R\306Q\246)\345Lk\214R\214\346\013\220\207)\223\255\003i\314$$ \252\235Q\224\256\321<t\210\222\215\351\366\304' \312o\234k\255wp,\002\3510zF\332\207\337k\316a\305\210\361\310\351\346\"\374\301\347\275\221c\3653\215\205\016t\300\005`\302\036k\033c:\r\266\326\230\354\327\316\310xs\014\330\266\336zi\307\"\226\034\032\331\236\333\266\2667\231<\021&\030|\007_\332^\005\236\204(\t\035*\274\200\275\375\023I\350\201\316\321W\353?6\0174_\207awq\007\272^\275~\262\263\262{g\0278\307\373\024D{\347:\244\330\217\307\036C\037\240\350^ 4g\230`\036}\2631\207\214\201v\035?\3219\212\2148\361N\003~\240\3334\252\221\321GO\003\330Z{\366\213$\252\263\214\025'\033\177k|\010\255\233\335Sc\032\232x\n\233\310\000a(vF^\251/6\236oX\215\365\275\203\307\332\307\220\035(?\220\377jc\275y\010\2705\2613\312\260\177P?\216\315>Z?\210\005\332\357\242\204Y\235#\257\325\327Ap\327\343\031\214\272\325\226\265\207\215\222\244t\216\236\250\177\325\270\006*\340\275\217wa\200L\001\376I\020s""\331\3267\333o.<\246\372F\333\243(\252\377\005\342\214Z\271y\002\244\005\351j\277\016\205\020\000\273\365\315\366[Xl\344\255\306\315\326k(\031\351\344WZ\026h\275\203C\317\035\331^\350\014\217l\177\t\003\341\032\352*\034;\033\333\017\352W\033'\260\207\217\301h:\010m\331\303\037>\256`\030M4\243\326l\353\313\235OvW\036\203,\305R,&\211G\2308\274\016\003p\266\371%\344\021\025\244\020\336j|\r\302=\361\331\256\265\273\336\211\013\335\347\320\354\367N1\212y26\3635\030\350\257\357L\354\216\356\216\305\362@\260\261\2050>\247f\330\2373Z~\373M\234\243F\336\006\335\263\332~\037F\313\356B2w\347m\244WKKC\235E\332S)\227[\277\354\316\246R\277\004AN\303\336\330=\370\370@\214n\230f\332\247HR\222\300\310\235\205\366\333\244\345@\2535\307b\000\347q\226\214a\002\030\232\0320\361\225\372C\340\325\250\006\017\031\355\0137~_\370\375N\014\r\216\267/S\r\305\tf\344x\37382u4\226\363\301\216\265\363\313c\275\342\306\3474\231b\217\234y\034G\203\263\320\013\250`c\251\240\306Z\377\330\035\215\321\216\222\374\000\322\377\236@\316\240\037\354\\K\3646\203\277&\344@\033\371\3043T\323o\277\223,A\306\007\214\310\323\363\273c\273\251Z\332\323\\Qh\310`\214v\216\302\\\014\223(\016Y\234\034\217\306\tG\211r\333\023\037\355\036\330\2153\n\306\027\315\177\361\224\260}\036ji_\376\276\375\375\0171<\240\343an\262Z?%\320\200N\307a\253\321\364.\250\235\303\300\360i\0301\306X\n\370\371\235\322\343t\352\013;\2338\304 \375\310KO\216\241\271\3633\263\004`&\323&\264\227\267\021\344\345\2431\020\034\250I\020\2561'\224X\222\221\242\036\337k\334\321\301^mj\245\246\361\345\311\253CG\246\332\223\227H\373\243\016\204\231\260\365\301\016\314\367'\352\327\201\251\036\364\373=2\rx\202\013j\345|\353\321\356\370\356\327\217\201\346\321\372kH\327\341\355\371\372\003\230\314\330L\324~\033\345\031*:Z\177\236\221{\254~\272\276\005\034;\320\001s\362\243\346E\024h\336\0106\231\315\203i\260\002\372\r\364\374\235=R\366/ \27042\260\353\277\333\375\3601I\331a\002\377\261\371<hn{\347\324N\001\305oO(\366\016\316\357\255# )#G\366\0162\333\013^R""cV\340Yk\322\014\372~\343\000h\306\363\315\357A\372\327\331tq\030f\002\226\003\342\327\030o|\333\232\207\211:\221E\205~h\375\210Clo\344\014M\246V\347,\250\255\275\270b{u\247\206CP\265\267\2148\336n\334\307i\206T\357\336\310\253u\227\313\325\330\216\312df\344\020\330\210;\013O\316\014=w\034\r\356\006YU\377\004N\001\377\301\240\334;\010\223\322t\353\277\300\004\201\364\352\366\345m&&\235\341W\241\0176\240\353\254\275C/v\016\036\257\177\206\032\n'?\230\013N\242\235v\244}\344\235\306*\210\376:\232`g`\226\030\246\245\306M0\213\317\240h\024\037_\377\375A\373\336\017\355\037\376\316\346X\354\355+\320\233\324^4\3371\361\323\372f\303\306\271Z%\246\006\326zg\342l\353s\034\370\360\320>\373\351\356\302.I\350!m^Ff\235\330\371;\231\204/\037e\350>`\263\273\002\353\034\205i\250=6K\2629\206\372p\2753v\232\353\226=Q\354\323\235\365\214b\315\023\355\323\244*:c\244Z%\370\347L\277\351\3400\007\302b\245}\022\025\340\035\260\316\301\\\223\355K\302\n\365\371\003X\264\240\204\037\337\351\234~\177\257G\013\320\222D\3344\241i\2703\310@\324\017w\206wn<>\360x\264s\032\232-\021\177\304\346\032\035\032\025&\031-\214vjd\212v>\266\032\377l\335i\347\257<^\320\2467\035\027\2429\005\342\r\354\222U\n\004/o\377\013{\234\331\027\023M\2735\325\236CL(w\365Cdu\016\343\002\3457\024\333C\257\325\355\306x\373\255\351\226\t\275\376=p\007d\006\215\330_\331\232V\032\261\"\365\013\250^\031\311\007q\3252[\277\002#\356M4_\000\347\211\241#\3572+t\357\310K\270\006\001\311n\236j\272h\t\354\022\025\277\"F&\262\237\242Y\254I\031NN\357\240\255\216ZB\330\244\323h\375\203\026|\007\233\005\303\023\r>\032\223\235\023\257tf\220\353\204)@\243\033\2468M\251L\267\356t\336\000+\242\271@\204\201\336\216\352\027I\211=\2072\001\334\0329\327\212v>\335\r\036\277\361\373,\032J/\221\314\242\251F\326\354oDp\025\260\235\302\251\014\227\022\260\024\243g\030%\231\317\237\303\334#\236a\230\362\347&,'q\212\344#\222xx\212\3320\372V\343\033\246\032I\361\323j\033\315\347\027\261K\343I#(\356\210\347rs\243uG\316,\355\341\223\240\372>\333\031}29t""\350\355\306U\260\003\237\007\025|\032\347\265=\266?q\265y\022-@\331\237\270\242\035\201\265\343\034Lq\320E\237\360\021\216\353\222j\3752L\016\240Z\317\322\260\271\263G\217\367I\300\244m\177\220Y\224\260&|\347\335'_\037\030z\356\340o?\325GI*\016\n\333\250\203\335\377J\373\225\\\353\233\235_a\340}\367\373\307\355{\017\333\017\377A l \240J\003\331m\237\375\n\026\222ggw\336}\374\322\357\240\247A_\000\352\374\271'7\010\365\026\010\356\001n\270\355\301r\312\005]\177`o\370\030\323\270{\303G\353/\324\377\3054\345Q\000\004M+\211\031\331\376\006\3468Zc\322\302\252\203kHT\3318\371\234\250/\324M\030\nWq\345z\034\231\201&<\341G\001\034~i\273\010\020\3375\346q\225\277Ghib}i\373G\020\370\321=R\3658\303\352)\277\320\202\\\245\300Z\204$\220\236\260\325gI\031\016\037\331~\204\263\305\221\355\037\240\017\340\317?\032\250\364\267M@\307\376\354u\231I\366\206_\253\377\332\274\265C\r?P\177\227\214\331\261\217q\272\355\214\241\2616\254\355d\200p\274V\377\2719\026\333\256\031k\216jV\nB\374BK\nX6\253\225\363\231\3465\350\2407\336\204\177\264\302\246\265wr\203\347\322\356\001\265\203\263\212\253%\260-\237\334\372_C\317\215\360\216\375\362\361z\252ca>;[\007\024w\332w\356\242\016\302ay\276\375\ni\\0h\027v\314\307_\265o\024\332\005\273=\214ZS\356\376\274\337:@\264L+\351\347\r\370\247\002\203\325p\"\205\350=\035{\207e\335I\"\322h\036i\335i\261M\004\334p@\006\200P\276\335X\304\231\024\347\245W\233A\3538\216\004\034\274\237\243\365\306L\333b\363\213f\201\244X\3555\200\365\314X\360]o\026`\367\177\217C\003\321\342T\017\010; o>Z\004\264CH\033\205\355\3034\222\332\303\270\214\2177\370_\315\314\224\243\365\347\352d\260=@\213\357\342\316\367\273wh{\212\026\247\022\034\220\033cO\212\032\215\270\021\031\243\021\353\\C{\360\360\366\305\372\337\352\270\346a\332\0025\304\027\360p\024-\256\00313\226\2259\2713\252\247n\264\010WYm\006N\340\356F{\350\235\206\327\316\201\211\205\306\223\352\010l\374\005\250\002\307\335G\315\217aUx\240\363\n.\\\206\337o\3728hQ\247*-\372V\373-\264$\037\322\014\254,\033n\361!\243aM""\3206fv\016\357~\362x\r\344\2553|\274\376\001ZXM2\325\370h\235\244\225s\376\361\001\316{\\\363\023M/\343> .\352\325x\002C\366\2111t\350x\375,tV\t\273_h\305\303lm\213]\367\034\333!XD\275u\010g\254\021P6d8\035\243r\226\330\006\256o1\315+\327\006\377\240m\317\372Om\034\322L\034\371<H\222\207C~TA\233\310 \202o\276\331\316!o\372\225x\320\274\271\363\326\356\235\377\007\253\231\277U";
    PyObject *data = __Pyx_DecompressString(cstring, 14777, 1);
    if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
    const char* const bytes = __Pyx_PyBytes_AsString(data);
    #if !CYTHON_ASSUME_SAFE_MACROS
    if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
    #endif
    #else /* compression: none (55627 bytes) */
const char* const bytes = ".014.0An Expression cannot be evaluated to python True or False. If you are using the 'and', 'or' or 'not' operators, use '&', '|' or '~' instead.Calendar unitCannot deserialize \"Do not call Expected a field reference as a str or int, list of str or int, or Expression. Got Expression is an abstract class thus cannot be initialized.Function doc must contain a descriptionFunction doc must contain a summaryFunction doc must contain arg_namesFunction was NULLGot unexpected argument type HashAggregateKernel<Kernel was NULL\n        Minimum number of non-null values in the input.  If the number\n        of non-null values is below `min_count`, the output is null.\nMust either pass values for 'type' and 'safe' or pass a value for 'options'Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.\n    Options for `cumulative_*` functions.\n\n    - cumulative_sum\n    - cumulative_sum_checked\n    - cumulative_prod\n    - cumulative_prod_checked\n    - cumulative_max\n    - cumulative_min\n\n    Parameters\n    ----------\n    start : Scalar, default None\n        Starting value for the cumulative operation. If none is given,\n        a default value depending on the operation and input type is used.\n    skip_nulls : bool, default False\n        When false, the first encountered null is propagated.\n    \n    Options for `cumulative_sum` function.\n\n    Parameters\n    ----------\n    start : Scalar, default None\n        Starting value for sum computation\n    skip_nulls : bool, default False\n        When false, the first encountered null is propagated.\n    \n    Options for dictionary encoding.\n\n    Parameters\n    ----------\n    null_encoding : str, default \"mask\"\n        How to encode nulls in the input.\n        Accepted values are \"mask\" (null inputs emit a null in the indices\n        array), \"encode\" (null inputs emit a non-null ind""ex pointing to\n        a null value in the dictionary array).\n    \n    Options for element-wise aggregate functions.\n\n    Parameters\n    ----------\n    \n    Options for `inverse_permutation` function.\n\n    Parameters\n    ----------\n    max_index : int64, default -1\n        The max value in the input indices to allow.\n        The length of the function\342\200\231s output will be this value plus 1.\n        If negative, this value will be set to the length of the input indices\n        minus 1 and the length of the function\342\200\231s output will be the length\n        of the input indices.\n    output_type : DataType, default None\n        The data type for the output array of inverse permutation.\n        If None, the output will be of the same type as the input indices, otherwise\n        must be a signed integer type. An invalid error will be reported if this type\n        is not able to store the length of the input indices.\n    \n    Options for list array slicing.\n\n    Parameters\n    ----------\n    start : int\n        Index to start slicing inner list elements (inclusive).\n    stop : Optional[int], default None\n        If given, index to stop slicing at (exclusive).\n        If not given, slicing will stop at the end. (NotImplemented)\n    step : int, default 1\n        Slice step.\n    return_fixed_size_list : Optional[bool], default None\n        Whether to return a FixedSizeListArray. If true _and_ stop is after\n        a list element's length, nulls will be appended to create the\n        requested slice size. The default of `None` will return the same\n        type which was passed in.\n    \n    Options for `list_flatten` function\n\n    Parameters\n    ----------\n    recursive : bool, default False\n        When True, the list array is flattened recursively until an array\n        of non-list values is formed.\n    \n    Options for looking for a substring.\n\n    Parameters\n    ----------\n    pattern : str\n        Substring"" pattern to look for inside input values.\n    ignore_case : bool, default False\n        Whether to perform a case-insensitive match.\n    \n    Options for padding strings.\n\n    Parameters\n    ----------\n    width : int\n        Desired string length.\n    padding : str, default \" \"\n        What to pad the string with. Should be one byte or codepoint.\n    lean_left_on_odd_padding : bool, default True\n        What to do if there is an odd number of padding characters (in case\n        of centered padding). Defaults to aligning on the left (i.e. adding\n        the extra padding character on the right).\n    \n    Options for `pairwise` functions.\n\n    Parameters\n    ----------\n    period : int, default 1\n        Period for applying the period function.\n    \n    Options for random generation.\n\n    Parameters\n    ----------\n    initializer : int or str\n        How to initialize the underlying random generator.\n        If an integer is given, it is used as a seed.\n        If \"system\" is given, the random generator is initialized with\n        a system-specific source of (hopefully true) randomness.\n        Other values are invalid.\n    \n    Options for replacing matched substrings.\n\n    Parameters\n    ----------\n    pattern : str\n        Substring pattern to look for inside input values.\n    replacement : str\n        What to replace the pattern with.\n    max_replacements : int or None, default None\n        The maximum number of strings to replace in each\n        input value (unlimited if None).\n    \n    Options for replacing slices.\n\n    Parameters\n    ----------\n    start : int\n        Index to start slicing at (inclusive).\n    stop : int\n        Index to stop slicing at (exclusive).\n    replacement : str\n        What to replace the slice with.\n    \n    Options for rounding numbers.\n\n    Parameters\n    ----------\n    ndigits : int, default 0\n        Number of fractional digits to round to.\n    round_mode : str,"" default \"half_to_even\"\n        Rounding and tie-breaking mode.\n        Accepted values are \"down\", \"up\", \"towards_zero\", \"towards_infinity\",\n        \"half_down\", \"half_up\", \"half_towards_zero\", \"half_towards_infinity\",\n        \"half_to_even\", \"half_to_odd\".\n    \n    Options for rounding numbers to a multiple.\n\n    Parameters\n    ----------\n    multiple : numeric scalar, default 1.0\n        Multiple to round to. Should be a scalar of a type compatible\n        with the argument to be rounded.\n    round_mode : str, default \"half_to_even\"\n        Rounding and tie-breaking mode.\n        Accepted values are \"down\", \"up\", \"towards_zero\", \"towards_infinity\",\n        \"half_down\", \"half_up\", \"half_towards_zero\", \"half_towards_infinity\",\n        \"half_to_even\", \"half_to_odd\".\n    \n    Options for rounding numbers when ndigits is provided by a second array\n\n    Parameters\n    ----------\n    round_mode : str, default \"half_to_even\"\n        Rounding and tie-breaking mode.\n        Accepted values are \"down\", \"up\", \"towards_zero\", \"towards_infinity\",\n        \"half_down\", \"half_up\", \"half_towards_zero\", \"half_towards_infinity\",\n        \"half_to_even\", \"half_to_odd\".\n    \n    Options for rounding temporal values.\n\n    Parameters\n    ----------\n    multiple : int, default 1\n        Number of units to round to.\n    unit : str, default \"day\"\n        The unit in which `multiple` is expressed.\n        Accepted values are \"year\", \"quarter\", \"month\", \"week\", \"day\",\n        \"hour\", \"minute\", \"second\", \"millisecond\", \"microsecond\",\n        \"nanosecond\".\n    week_starts_monday : bool, default True\n        If True, weeks start on Monday; if False, on Sunday.\n    ceil_is_strictly_greater : bool, default False\n        If True, ceil returns a rounded value that is strictly greater than the\n        input. For example: ceiling 1970-01-01T00:00:00 to 3 hours would""\n        yield 1970-01-01T03:00:00 if set to True and 1970-01-01T00:00:00\n        if set to False.\n        This applies to the ceil_temporal function only.\n    calendar_based_origin : bool, default False\n        By default, the origin is 1970-01-01T00:00:00. By setting this to True,\n        rounding origin will be beginning of one less precise calendar unit.\n        E.g.: rounding to hours will use beginning of day as origin.\n\n        By default time is rounded to a multiple of units since\n        1970-01-01T00:00:00. By setting calendar_based_origin to true,\n        time will be rounded to number of units since the last greater\n        calendar unit.\n        For example: rounding to multiple of days since the beginning of the\n        month or to hours since the beginning of the day.\n        Exceptions: week and quarter are not used as greater units,\n        therefore days will be rounded to the beginning of the month not\n        week. Greater unit of week is a year.\n        Note that ceiling and rounding might change sorting order of an array\n        near greater unit change. For example rounding YYYY-mm-dd 23:00:00 to\n        5 hours will ceil and round to YYYY-mm-dd+1 01:00:00 and floor to\n        YYYY-mm-dd 20:00:00. On the other hand YYYY-mm-dd+1 00:00:00 will\n        ceil, round and floor to YYYY-mm-dd+1 00:00:00. This can break the\n        order of an already ordered array.\n\n    \n    Options for run-end encoding.\n\n    Parameters\n    ----------\n    run_end_type : DataType, default pyarrow.int32()\n        The data type of the run_ends array.\n\n        Accepted values are pyarrow.{int16(), int32(), int64()}.\n    \n    Options for scalar aggregations.\n\n    Parameters\n    ----------\n    \n    Options for `scatter` function.\n\n    Parameters\n    ----------\n    max_index : int64, default -1\n        The max value in the input indices to allow.\n        The length of the function\342\200\231s output will be this value plus 1.""\n        If negative, this value will be set to the length of the input indices minus 1\n        and the length of the function\342\200\231s output will be the length of the input indices.\n    \n    Options for selecting with a boolean filter.\n\n    Parameters\n    ----------\n    null_selection_behavior : str, default \"drop\"\n        How to handle nulls in the selection filter.\n        Accepted values are \"drop\", \"emit_null\".\n    \n    Options for slicing.\n\n    Parameters\n    ----------\n    start : int\n        Index to start slicing at (inclusive).\n    stop : int or None, default None\n        If given, index to stop slicing at (exclusive).\n        If not given, slicing will stop at the end.\n    step : int, default 1\n        Slice step.\n    \n    Options for splitting on a string pattern.\n\n    Parameters\n    ----------\n    pattern : str\n        String pattern to split on.\n    max_splits : int or None, default None\n        Maximum number of splits for each input value (unlimited if None).\n    reverse : bool, default False\n        Whether to start splitting from the end of each input value.\n        This only has an effect if `max_splits` is not None.\n    \n    Options for splitting on whitespace.\n\n    Parameters\n    ----------\n    max_splits : int or None, default None\n        Maximum number of splits for each input value (unlimited if None).\n    reverse : bool, default False\n        Whether to start splitting from the end of each input value.\n        This only has an effect if `max_splits` is not None.\n    \n    Options for the `array_sort_indices` function.\n\n    Parameters\n    ----------\n    order : str, default \"ascending\"\n        Which order to sort values in.\n        Accepted values are \"ascending\", \"descending\".\n    null_placement : str, default \"at_end\"\n        Where nulls in the input should be sorted.\n        Accepted values are \"at_start\", \"at_end\".\n    \n    Options for the `assume_timezone` fu""nction.\n\n    Parameters\n    ----------\n    timezone : str\n        Timezone to assume for the input.\n    ambiguous : str, default \"raise\"\n        How to handle timestamps that are ambiguous in the assumed timezone.\n        Accepted values are \"raise\", \"earliest\", \"latest\".\n    nonexistent : str, default \"raise\"\n        How to handle timestamps that don't exist in the assumed timezone.\n        Accepted values are \"raise\", \"earliest\", \"latest\".\n    \n    Options for the `binary_join_element_wise` function.\n\n    Parameters\n    ----------\n    null_handling : str, default \"emit_null\"\n        How to handle null values in the inputs.\n        Accepted values are \"emit_null\", \"skip\", \"replace\".\n    null_replacement : str, default \"\"\n        Replacement string to emit for null inputs if `null_handling`\n        is \"replace\".\n    \n    Options for the `cast` function.\n\n    Parameters\n    ----------\n    target_type : DataType, optional\n        The PyArrow type to cast to.\n    allow_int_overflow : bool, default False\n        Whether integer overflow is allowed when casting.\n    allow_time_truncate : bool, default False\n        Whether time precision truncation is allowed when casting.\n    allow_time_overflow : bool, default False\n        Whether date/time range overflow is allowed when casting.\n    allow_decimal_truncate : bool, default False\n        Whether decimal precision truncation is allowed when casting.\n    allow_float_truncate : bool, default False\n        Whether floating-point precision truncation is allowed when casting.\n    allow_invalid_utf8 : bool, default False\n        Whether producing invalid utf8 data is allowed when casting.\n    \n    Options for the `count` function.\n\n    Parameters\n    ----------\n    mode : str, default \"only_valid\"\n        Which values to count in the input.\n        Accepted values are \"only_valid\", \"only_null\", \"all\".\n    \n    Options for the `day_of_week` f""unction.\n\n    Parameters\n    ----------\n    count_from_zero : bool, default True\n        If True, number days from 0, otherwise from 1.\n    week_start : int, default 1\n        Which day does the week start with (Monday=1, Sunday=7).\n        How this value is numbered is unaffected by `count_from_zero`.\n    \n    Options for the `extract_regex` function.\n\n    Parameters\n    ----------\n    pattern : str\n        Regular expression with named capture fields.\n    \n    Options for the `extract_regex_span` function.\n\n    Parameters\n    ----------\n    pattern : str\n        Regular expression with named capture fields.\n    \n    Options for the `index` function.\n\n    Parameters\n    ----------\n    value : Scalar\n        The value to search for.\n    \n    Options for the `is_in` and `index_in` functions.\n\n    Parameters\n    ----------\n    value_set : Array\n        Set of values to look for in the input.\n    skip_nulls : bool, default False\n        If False, nulls in the input are matched in the value_set just\n        like regular values.\n        If True, nulls in the input always fail matching.\n    \n    Options for the `is_null` function.\n\n    Parameters\n    ----------\n    nan_is_null : bool, default False\n        Whether floating-point NaN values are considered null.\n    \n    Options for the `make_struct` function.\n\n    Parameters\n    ----------\n    field_names : sequence of str\n        Names of the struct fields to create.\n    field_nullability : sequence of bool, optional\n        Nullability information for each struct field.\n        If omitted, all fields are nullable.\n    field_metadata : sequence of KeyValueMetadata, optional\n        Metadata for each struct field.\n    \n    Options for the `map_lookup` function.\n\n    Parameters\n    ----------\n    query_key : Scalar or Object can be converted to Scalar\n        The key to search for.\n    occurrence : str\n        The occurrence(s) to return from the Map\n     ""   Accepted values are \"first\", \"last\", or \"all\".\n    \n    Options for the `mode` function.\n\n    Parameters\n    ----------\n    n : int, default 1\n        Number of distinct most-common values to return.\n    \n    Options for the `partition_nth_indices` function.\n\n    Parameters\n    ----------\n    pivot : int\n        Index into the equivalent sorted array of the pivot element.\n    null_placement : str, default \"at_end\"\n        Where nulls in the input should be partitioned.\n        Accepted values are \"at_start\", \"at_end\".\n    \n    Options for the `pivot_wider` function.\n\n    Parameters\n    ----------\n    key_names : sequence of str\n        The pivot key names expected in the pivot key column.\n        For each entry in `key_names`, a column with the same name is emitted\n        in the struct output.\n    unexpected_key_behavior : str, default \"ignore\"\n        The behavior when pivot keys not in `key_names` are encountered.\n        Accepted values are \"ignore\", \"raise\".\n        If \"ignore\", unexpected keys are silently ignored.\n        If \"raise\", unexpected keys raise a KeyError.\n    \n    Options for the `quantile` function.\n\n    Parameters\n    ----------\n    q : double or sequence of double, default 0.5\n        Probability levels of the quantiles to compute. All values must be in\n        [0, 1].\n    interpolation : str, default \"linear\"\n        How to break ties between competing data points for a given quantile.\n        Accepted values are:\n\n        - \"linear\": compute an interpolation\n        - \"lower\": always use the smallest of the two data points\n        - \"higher\": always use the largest of the two data points\n        - \"nearest\": select the data point that is closest to the quantile\n        - \"midpoint\": compute the (unweighted) mean of the two data points\n    \n    Options for the `rank` function.\n\n    Parameters\n    ----------\n    sort_keys : sequence of (name, order) tuple""s or str, default \"ascending\"\n        Names of field/column keys to sort the input on,\n        along with the order each field/column is sorted in.\n        Accepted values for `order` are \"ascending\", \"descending\".\n        The field name can be a string column name or expression.\n        Alternatively, one can simply pass \"ascending\" or \"descending\" as a string\n        if the input is array-like.\n    null_placement : str, default \"at_end\"\n        Where nulls in input should be sorted.\n        Accepted values are \"at_start\", \"at_end\".\n    tiebreaker : str, default \"first\"\n        Configure how ties between equal values are handled.\n        Accepted values are:\n\n        - \"min\": Ties get the smallest possible rank in sorted order.\n        - \"max\": Ties get the largest possible rank in sorted order.\n        - \"first\": Ranks are assigned in order of when ties appear in the\n                   input. This ensures the ranks are a stable permutation\n                   of the input.\n        - \"dense\": The ranks span a dense [1, M] interval where M is the\n                   number of distinct values in the input.\n    \n    Options for the `rank_quantile` function.\n\n    Parameters\n    ----------\n    sort_keys : sequence of (name, order) tuples or str, default \"ascending\"\n        Names of field/column keys to sort the input on,\n        along with the order each field/column is sorted in.\n        Accepted values for `order` are \"ascending\", \"descending\".\n        The field name can be a string column name or expression.\n        Alternatively, one can simply pass \"ascending\" or \"descending\" as a string\n        if the input is array-like.\n    null_placement : str, default \"at_end\"\n        Where nulls in input should be sorted.\n        Accepted values are \"at_start\", \"at_end\".\n    \n    Options for the `skew` and `kurtosis` functions.\n\n    Parameters\n    ----------\n    \n    Options for the `sort_indice""s` function.\n\n    Parameters\n    ----------\n    sort_keys : sequence of (name, order) tuples\n        Names of field/column keys to sort the input on,\n        along with the order each field/column is sorted in.\n        Accepted values for `order` are \"ascending\", \"descending\".\n        The field name can be a string column name or expression.\n    null_placement : str, default \"at_end\"\n        Where nulls in input should be sorted, only applying to\n        columns/fields mentioned in `sort_keys`.\n        Accepted values are \"at_start\", \"at_end\".\n    \n    Options for the `strftime` function.\n\n    Parameters\n    ----------\n    format : str, default \"%Y-%m-%dT%H:%M:%S\"\n        Pattern for formatting input values.\n    locale : str, default \"C\"\n        Locale to use for locale-specific format specifiers.\n    \n    Options for the `strptime` function.\n\n    Parameters\n    ----------\n    format : str\n        Pattern for parsing input strings as timestamps, such as \"%Y/%m/%d\".\n        Note that the semantics of the format follow the C/C++ strptime, not the Python one.\n        There are differences in behavior, for example how the \"%y\" placeholder\n        handles years with less than four digits.\n    unit : str\n        Timestamp unit of the output.\n        Accepted values are \"s\", \"ms\", \"us\", \"ns\".\n    error_is_null : boolean, default False\n        Return null on parsing errors if true or raise if false.\n    \n    Options for the `struct_field` function.\n\n    Parameters\n    ----------\n    indices : List[str], List[bytes], List[int], Expression, bytes, str, or int\n        List of indices for chained field lookup, for example `[4, 1]`\n        will look up the second nested field in the fifth outer field.\n    \n    Options for the `take` and `array_take` functions.\n\n    Parameters\n    ----------\n    boundscheck : boolean, default True\n        Whether to check indices are within bounds. If False and an\n     ""   index is out of bounds, behavior is undefined (the process\n        may crash).\n    \n    Options for the `tdigest` function.\n\n    Parameters\n    ----------\n    q : double or sequence of double, default 0.5\n        Probability levels of the quantiles to approximate. All values must be\n        in [0, 1].\n    delta : int, default 100\n        Compression parameter for the T-digest algorithm.\n    buffer_size : int, default 500\n        Buffer size for the T-digest algorithm.\n    \n    Options for the `utf8_normalize` function.\n\n    Parameters\n    ----------\n    form : str\n        Unicode normalization form.\n        Accepted values are \"NFC\", \"NFKC\", \"NFD\", NFKD\".\n    \n    Options for the `variance` and `stddev` functions.\n\n    Parameters\n    ----------\n    ddof : int, default 0\n        Number of degrees of freedom.\n    \n    Options for the `week` function.\n\n    Parameters\n    ----------\n    week_starts_monday : bool, default True\n        If True, weeks start on Monday; if False, on Sunday.\n    count_from_zero : bool, default False\n        If True, dates at the start of a year that fall into the last week\n        of the previous year emit 0.\n        If False, they emit 52 or 53 (the week number of the last week\n        of the previous year).\n    first_week_is_fully_in_year : bool, default False\n        If True, week number 0 is fully in January.\n        If False, a week that begins on December 29, 30 or 31 is considered\n        to be week number 0 of the following year.\n    \n    Options for the `winsorize` function.\n\n    Parameters\n    ----------\n    lower_limit : float, between 0 and 1\n        The quantile below which all values are replaced with the quantile's value.\n    upper_limit : float, between 0 and 1\n        The quantile above which all values are replaced with the quantile's value.\n    \n    Options for top/bottom k-selection.\n\n    Parameters\n    ----------\n    k : int\n        Number of leading va""lues to select in sorted order\n        (i.e. the largest values if sort order is \"descending\",\n        the smallest otherwise).\n    sort_keys : sequence of (name, order) tuples\n        Names of field/column keys to sort the input on,\n        along with the order each field/column is sorted in.\n        Accepted values for `order` are \"ascending\", \"descending\".\n        The field name can be a string column name or expression.\n    \n    Options for trimming characters from strings.\n\n    Parameters\n    ----------\n    characters : str\n        Individual characters to be trimmed from the string.\n    \n    Options for utf8_zero_fill.\n\n    Parameters\n    ----------\n    width : int\n        Desired string length.\n    padding : str, default \"0\"\n        Padding character. Should be one Unicode codepoint.\n\n    Examples\n    --------\n    >>> import pyarrow as pa\n    >>> import pyarrow.compute as pc\n    >>> arr = pa.array([\"1\", \"-2\", \"+3\"])\n    >>> opts = pc.ZeroFillOptions(width=4)\n    >>> pc.utf8_zero_fill(arr, options=opts).to_pylist()\n    ['0001', '-002', '+003']\n    \n    Register a user-defined non-decomposable aggregate function.\n\n    This API is EXPERIMENTAL.\n\n    A non-decomposable aggregation function is a function that executes\n    aggregate operations on the whole data that it is aggregating.\n    In other words, non-decomposable aggregate function cannot be\n    split into consume/merge/finalize steps.\n\n    This is often used with ordered or segmented aggregation where groups\n    can be emit before accumulating all of the input data.\n\n    Note that currently the size of any input column cannot exceed 2 GB\n    for a single segment (all groups combined).\n\n    Parameters\n    ----------\n    func : callable\n        A callable implementing the user-defined function.\n        The first argument is the context argument of type\n        UdfContext.\n        Then, it must take arguments equal to the number of\n        ""in_types defined. It must return a Scalar matching the\n        out_type.\n        To define a varargs function, pass a callable that takes\n        *args. The in_type needs to match in type of inputs when\n        the function gets called.\n    function_name : str\n        Name of the function. This name must be unique, i.e.,\n        there should only be one function registered with\n        this name in the function registry.\n    function_doc : dict\n        A dictionary object with keys \"summary\" (str),\n        and \"description\" (str).\n    in_types : Dict[str, DataType]\n        A dictionary mapping function argument names to\n        their respective DataType.\n        The argument names will be used to generate\n        documentation for the function. The number of\n        arguments specified here determines the function\n        arity.\n    out_type : DataType\n        Output type of the function.\n    func_registry : FunctionRegistry\n        Optional function registry to use instead of the default global one.\n\n    Examples\n    --------\n    >>> import numpy as np\n    >>> import pyarrow as pa\n    >>> import pyarrow.compute as pc\n    >>>\n    >>> func_doc = {}\n    >>> func_doc[\"summary\"] = \"simple median udf\"\n    >>> func_doc[\"description\"] = \"compute median\"\n    >>>\n    >>> def compute_median(ctx, array):\n    ...     return pa.scalar(np.median(array))\n    >>>\n    >>> func_name = \"py_compute_median\"\n    >>> in_types = {\"array\": pa.int64()}\n    >>> out_type = pa.float64()\n    >>> pc.register_aggregate_function(compute_median, func_name, func_doc,\n    ...                   in_types, out_type)\n    >>>\n    >>> func = pc.get_function(func_name)\n    >>> func.name\n    'py_compute_median'\n    >>> answer = pc.call_function(func_name, [pa.array([20, 40])])\n    >>> answer\n    <pyarrow.DoubleScalar: 30.0>\n    >>> table = pa.table([pa.array([1, 1, 2, 2]), pa.array([10, 20, 30, 40])], names=['k', 'v'])\n    >>> result = table.gr""oup_by('k').aggregate([('v', 'py_compute_median')])\n    >>> result\n    pyarrow.Table\n    k: int64\n    v_py_compute_median: double\n    ----\n    k: [[1,2]]\n    v_py_compute_median: [[15,35]]\n    \n    Register a user-defined scalar function.\n\n    This API is EXPERIMENTAL.\n\n    A scalar function is a function that executes elementwise\n    operations on arrays or scalars, i.e. a scalar function must\n    be computed row-by-row with no state where each output row\n    is computed only from its corresponding input row.\n    In other words, all argument arrays have the same length,\n    and the output array is of the same length as the arguments.\n    Scalar functions are the only functions allowed in query engine\n    expressions.\n\n    Parameters\n    ----------\n    func : callable\n        A callable implementing the user-defined function.\n        The first argument is the context argument of type\n        UdfContext.\n        Then, it must take arguments equal to the number of\n        in_types defined. It must return an Array or Scalar\n        matching the out_type. It must return a Scalar if\n        all arguments are scalar, else it must return an Array.\n\n        To define a varargs function, pass a callable that takes\n        ``*args``. The last in_type will be the type of all varargs\n        arguments.\n    function_name : str\n        Name of the function. There should only be one function\n        registered with this name in the function registry.\n    function_doc : dict\n        A dictionary object with keys \"summary\" (str),\n        and \"description\" (str).\n    in_types : Dict[str, DataType]\n        A dictionary mapping function argument names to\n        their respective DataType.\n        The argument names will be used to generate\n        documentation for the function. The number of\n        arguments specified here determines the function\n        arity.\n    out_type : DataType\n        Output type of the function.\n    func""_registry : FunctionRegistry\n        Optional function registry to use instead of the default global one.\n\n    Examples\n    --------\n    >>> import pyarrow as pa\n    >>> import pyarrow.compute as pc\n    >>>\n    >>> func_doc = {}\n    >>> func_doc[\"summary\"] = \"simple udf\"\n    >>> func_doc[\"description\"] = \"add a constant to a scalar\"\n    >>>\n    >>> def add_constant(ctx, array):\n    ...     return pc.add(array, 1, memory_pool=ctx.memory_pool)\n    >>>\n    >>> func_name = \"py_add_func\"\n    >>> in_types = {\"array\": pa.int64()}\n    >>> out_type = pa.int64()\n    >>> pc.register_scalar_function(add_constant, func_name, func_doc,\n    ...                   in_types, out_type)\n    >>>\n    >>> func = pc.get_function(func_name)\n    >>> func.name\n    'py_add_func'\n    >>> answer = pc.call_function(func_name, [pa.array([20])])\n    >>> answer\n    <pyarrow.lib.Int64Array object at ...>\n    [\n      21\n    ]\n    \n    Register a user-defined vector function.\n\n    This API is EXPERIMENTAL.\n\n    A vector function is a function that executes vector\n    operations on arrays. Vector function is often used\n    when compute doesn't fit other more specific types of\n    functions (e.g., scalar and aggregate).\n\n    Parameters\n    ----------\n    func : callable\n        A callable implementing the user-defined function.\n        The first argument is the context argument of type\n        UdfContext.\n        Then, it must take arguments equal to the number of\n        in_types defined. It must return an Array or Scalar\n        matching the out_type. It must return a Scalar if\n        all arguments are scalar, else it must return an Array.\n\n        To define a varargs function, pass a callable that takes\n        *args. The last in_type will be the type of all varargs\n        arguments.\n    function_name : str\n        Name of the function. There should only be one function\n        registered with this name in the function registry.""\n    function_doc : dict\n        A dictionary object with keys \"summary\" (str),\n        and \"description\" (str).\n    in_types : Dict[str, DataType]\n        A dictionary mapping function argument names to\n        their respective DataType.\n        The argument names will be used to generate\n        documentation for the function. The number of\n        arguments specified here determines the function\n        arity.\n    out_type : DataType\n        Output type of the function.\n    func_registry : FunctionRegistry\n        Optional function registry to use instead of the default global one.\n\n    Examples\n    --------\n    >>> import pyarrow as pa\n    >>> import pyarrow.compute as pc\n    >>>\n    >>> func_doc = {}\n    >>> func_doc[\"summary\"] = \"percent rank\"\n    >>> func_doc[\"description\"] = \"compute percent rank\"\n    >>>\n    >>> def list_flatten_udf(ctx, x):\n    ...     return pc.list_flatten(x)\n    >>>\n    >>> func_name = \"list_flatten_udf\"\n    >>> in_types = {\"array\": pa.list_(pa.int64())}\n    >>> out_type = pa.int64()\n    >>> pc.register_vector_function(list_flatten_udf, func_name, func_doc,\n    ...                   in_types, out_type)\n    >>>\n    >>> answer = pc.call_function(func_name, [pa.array([[1, 2], [3, 4]])])\n    >>> answer\n    <pyarrow.lib.Int64Array object at ...>\n    [\n      1,\n      2,\n      3,\n      4\n    ]\n    ScalarAggregateKernel<ScalarKernel<Should either be first, last, or allSubstrait message contained multiple expressions.  Use pyarrow.substrait.deserialize_expressions insteadSubstrait message did not contain any expressionsThe pyarrow installation is not built with support for Substrait.Unable to get FieldRef from ExpressionUnicode normalization formUnknown Function::KindUnsupported value for unexpected_key_behavior: expected 'ignore' or 'raise', got  Use one of the subclasses instead: VectorKernel<%Y-%m-%dT%H:%M:%S?, >\"() \n    add_note'ambiguous' timestamp handling, arity=arrow.compute.Fu""nction<name=\n    biased : bool, default True\n        Whether the calculated value is biased.\n        If False, the value computed includes a correction factor to reduce bias.\n    count modedisableenable for compute functionfunc must be a callablegcin_types must be a dictionary of DataTypeinitializer should be 'system', an integer, or a hashable object; got  instead. is an abstract class thus cannot be initialized.\" is not a valid isenabled, kind=min_count : int, default multiple type for RoundToMultipleOptionsnested field reference should be non-empty'nonexistent' timestamp handlingnull encodingnull handlingnull placementnull selection behavior, num_kernels=only other expressions allowed as argumentspyarrow/_compute.pyx<pyarrow.compute.quantile interpolationregister_aggregate_function (line 3216)register_scalar_function (line 3058)register_vector_function (line 3139)round mode's constructor directlyself.c_context cannot be converted to a Python object for picklingself.kernel cannot be converted to a Python object for picklingself.options,self.wrapped cannot be converted to a Python object for picklingself.register_func cannot be converted to a Python object for picklingself.registry cannot be converted to a Python object for picklingself.wrapped cannot be converted to a Python object for picklingskip_nulls : bool, default True\n        Whether to skip (ignore) nulls in the input.\n        If False, any null in the input forces the output to null.\nsort order`start` type for CumulativeOptionstime unit(tree fragment)value set_ArraySortOptionsArraySortOptionsArraySortOptions.__init___ArraySortOptions.__reduce_cython___ArraySortOptions.__setstate_cython___ArraySortOptions._set_optionsArrowInvalid_AssumeTimezoneOptionsAssumeTimezoneOptionsAssumeTimezoneOptions.__init___AssumeTimezoneOptions.__reduce_cython___AssumeTimezoneOptions.__setstate_cython___AssumeTimezoneOptions._set_optionsBoundExpressionsCCastOptions_CastOptionsCastOptions.__init___CastOptions.__reduce_cy""thon___CastOptions.__setstate_cython___CastOptions._set_options_CastOptions._set_safe_CastOptions._set_type_CastOptions._set_unsafe_CastOptions.is_safeCastOptions.safeCastOptions.unsafe_CountOptionsCountOptionsCountOptions.__init___CountOptions.__reduce_cython___CountOptions.__setstate_cython___CountOptions._set_optionsCumulativeOptions_CumulativeOptionsCumulativeOptions.__init___CumulativeOptions.__reduce_cython___CumulativeOptions.__setstate_cython___CumulativeOptions._set_optionsCumulativeSumOptionsCumulativeSumOptions.__init___DEPR_MSG_DayOfWeekOptionsDayOfWeekOptionsDayOfWeekOptions.__init___DayOfWeekOptions.__reduce_cython___DayOfWeekOptions.__setstate_cython___DayOfWeekOptions._set_options_DictionaryEncodeOptionsDictionaryEncodeOptionsDictionaryEncodeOptions.__init___DictionaryEncodeOptions.__reduce_cython___DictionaryEncodeOptions.__setstate_cython___DictionaryEncodeOptions._set_options_ElementWiseAggregateOptionsElementWiseAggregateOptionsElementWiseAggregateOptions.__init___ElementWiseAggregateOptions.__reduce_cython___ElementWiseAggregateOptions.__setstate_cython___ElementWiseAggregateOptions._set_optionsExpressionExpression.__reduce__Expression._callExpression._deserializeExpression._fieldExpression._nested_fieldExpression._scalarExpression.castExpression.equalsExpression.from_substraitExpression.is_nanExpression.is_nullExpression.is_validExpression.isinExpression.to_substrait_ExtractRegexOptionsExtractRegexOptionsExtractRegexOptions.__init___ExtractRegexOptions.__reduce_cython___ExtractRegexOptions.__setstate_cython___ExtractRegexOptions._set_options_ExtractRegexSpanOptionsExtractRegexSpanOptionsExtractRegexSpanOptions.__init___ExtractRegexSpanOptions.__reduce_cython___ExtractRegexSpanOptions.__setstate_cython___ExtractRegexSpanOptions._set_options_FilterOptionsFilterOptionsFilterOptions.__init___FilterOptions.__reduce_cython___FilterOptions.__setstate_cython___FilterOptions._set_optionsFunctionFunctionDocFunctionOptionsFunctionOptions.__reduce_cython__""FunctionOptions.__setstate_cython__FunctionOptions.deserializeFunctionOptions.serializeFunctionRegistryFunctionRegistry.__reduce_cython__FunctionRegistry.__setstate_cython__FunctionRegistry.get_functionFunctionRegistry.list_functionsFunction.__reduce__Function.callHashAggregateFunctionHashAggregateKernelHashAggregateKernel.__reduce_cython__HashAggregateKernel.__setstate_cython___IndexOptionsIndexOptionsIndexOptions.__init___IndexOptions.__reduce_cython___IndexOptions.__setstate_cython___IndexOptions._set_options_InversePermutationOptionsInversePermutationOptionsInversePermutationOptions.__init___InversePermutationOptions.__reduce_cython___InversePermutationOptions.__setstate_cython___InversePermutationOptions._set_options_JoinOptionsJoinOptionsJoinOptions.__init___JoinOptions.__reduce_cython___JoinOptions.__setstate_cython___JoinOptions._set_optionsKernelKernel.__reduce_cython__Kernel.__setstate_cython___ListFlattenOptionsListFlattenOptionsListFlattenOptions.__init___ListFlattenOptions.__reduce_cython___ListFlattenOptions.__setstate_cython___ListFlattenOptions._set_options_ListSliceOptionsListSliceOptionsListSliceOptions.__init___ListSliceOptions.__reduce_cython___ListSliceOptions.__setstate_cython___ListSliceOptions._set_options_MakeStructOptionsMakeStructOptionsMakeStructOptions.__init___MakeStructOptions.__reduce_cython___MakeStructOptions.__setstate_cython___MakeStructOptions._set_options_MapLookupOptionsMapLookupOptionsMapLookupOptions.__init___MapLookupOptions.__reduce_cython___MapLookupOptions.__setstate_cython___MapLookupOptions._set_options_MatchSubstringOptionsMatchSubstringOptionsMatchSubstringOptions.__init___MatchSubstringOptions.__reduce_cython___MatchSubstringOptions.__setstate_cython___MatchSubstringOptions._set_optionsMetaFunction_ModeOptionsModeOptionsModeOptions.__init___ModeOptions.__reduce_cython___ModeOptions.__setstate_cython___ModeOptions._set_optionsNFCNFDNFKCNFKDNullOptions_NullOptionsNullOptions.__init___NullOptions.__reduce_cython___NullO""ptions.__setstate_cython___NullOptions._set_options_PadOptionsPadOptionsPadOptions.__init___PadOptions.__reduce_cython___PadOptions.__setstate_cython___PadOptions._set_options_PairwiseOptionsPairwiseOptionsPairwiseOptions.__init___PairwiseOptions.__reduce_cython___PairwiseOptions.__setstate_cython___PairwiseOptions._set_options_PartitionNthOptionsPartitionNthOptionsPartitionNthOptions.__init___PartitionNthOptions.__reduce_cython___PartitionNthOptions.__setstate_cython___PartitionNthOptions._set_options_PivotWiderOptionsPivotWiderOptionsPivotWiderOptions.__init___PivotWiderOptions.__reduce_cython___PivotWiderOptions.__setstate_cython___PivotWiderOptions._set_options__Pyx_PyDict_NextRef_QuantileOptionsQuantileOptionsQuantileOptions.__init___QuantileOptions.__reduce_cython___QuantileOptions.__setstate_cython___QuantileOptions._set_options_RandomOptionsRandomOptionsRandomOptions.__init___RandomOptions.__reduce_cython___RandomOptions.__setstate_cython___RandomOptions._set_options_RankOptionsRankOptionsRankOptions.__init___RankOptions.__reduce_cython___RankOptions.__setstate_cython___RankOptions._set_options_RankQuantileOptionsRankQuantileOptionsRankQuantileOptions.__init___RankQuantileOptions.__reduce_cython___RankQuantileOptions.__setstate_cython___RankQuantileOptions._set_optionsRegisterUdfRegisterUdf.__reduce_cython__RegisterUdf.__setstate_cython___ReplaceSliceOptionsReplaceSliceOptionsReplaceSliceOptions.__init___ReplaceSliceOptions.__reduce_cython___ReplaceSliceOptions.__setstate_cython___ReplaceSliceOptions._set_options_ReplaceSubstringOptionsReplaceSubstringOptionsReplaceSubstringOptions.__init___ReplaceSubstringOptions.__reduce_cython___ReplaceSubstringOptions.__setstate_cython___ReplaceSubstringOptions._set_options_RoundBinaryOptionsRoundBinaryOptionsRoundBinaryOptions.__init___RoundBinaryOptions.__reduce_cython___RoundBinaryOptions.__setstate_cython___RoundBinaryOptions._set_options_RoundOptionsRoundOptionsRoundOptions.__init___RoundOptions.__reduce_cython___Ro""undOptions.__setstate_cython___RoundOptions._set_options_RoundTemporalOptionsRoundTemporalOptionsRoundTemporalOptions.__init___RoundTemporalOptions.__reduce_cython___RoundTemporalOptions.__setstate_cython___RoundTemporalOptions._set_options_RoundToMultipleOptionsRoundToMultipleOptionsRoundToMultipleOptions.__init___RoundToMultipleOptions.__reduce_cython___RoundToMultipleOptions.__setstate_cython___RoundToMultipleOptions._set_options_RunEndEncodeOptionsRunEndEncodeOptionsRunEndEncodeOptions.__init___RunEndEncodeOptions.__reduce_cython___RunEndEncodeOptions.__setstate_cython___RunEndEncodeOptions._set_optionsSUPPORTED_INPUT_ARR_TYPESScalarScalarAggregateFunctionScalarAggregateKernelScalarAggregateKernel.__reduce_cython__ScalarAggregateKernel.__setstate_cython___ScalarAggregateOptionsScalarAggregateOptionsScalarAggregateOptions.__init___ScalarAggregateOptions.__reduce_cython___ScalarAggregateOptions.__setstate_cython___ScalarAggregateOptions._set_optionsScalarFunctionScalarKernelScalarKernel.__reduce_cython__ScalarKernel.__setstate_cython___ScatterOptionsScatterOptionsScatterOptions.__init___ScatterOptions.__reduce_cython___ScatterOptions.__setstate_cython___ScatterOptions._set_options_SelectKOptionsSelectKOptionsSelectKOptions.__init___SelectKOptions.__reduce_cython___SelectKOptions.__setstate_cython___SelectKOptions._set_optionsSetLookupOptions_SetLookupOptionsSetLookupOptions.__init___SetLookupOptions.__reduce_cython___SetLookupOptions.__setstate_cython___SetLookupOptions._set_options_SkewOptionsSkewOptionsSkewOptions.__init___SkewOptions.__reduce_cython___SkewOptions.__setstate_cython___SkewOptions._set_options_SliceOptionsSliceOptionsSliceOptions.__init___SliceOptions.__reduce_cython___SliceOptions.__setstate_cython___SliceOptions._set_options_SortOptionsSortOptionsSortOptions.__init___SortOptions.__reduce_cython___SortOptions.__setstate_cython___SortOptions._set_options_SplitOptionsSplitOptionsSplitOptions.__init___SplitOptions.__reduce_cython___SplitOptions.__se""tstate_cython___SplitOptions._set_options_SplitPatternOptionsSplitPatternOptionsSplitPatternOptions.__init___SplitPatternOptions.__reduce_cython___SplitPatternOptions.__setstate_cython___SplitPatternOptions._set_options_StrftimeOptionsStrftimeOptionsStrftimeOptions.__init___StrftimeOptions.__reduce_cython___StrftimeOptions.__setstate_cython___StrftimeOptions._set_options_StrptimeOptionsStrptimeOptionsStrptimeOptions.__init___StrptimeOptions.__reduce_cython___StrptimeOptions.__setstate_cython___StrptimeOptions._set_options_StructFieldOptionsStructFieldOptionsStructFieldOptions.__init___StructFieldOptions.__reduce_cython___StructFieldOptions.__setstate_cython___StructFieldOptions._set_options_TDigestOptionsTDigestOptionsTDigestOptions.__init___TDigestOptions.__reduce_cython___TDigestOptions.__setstate_cython___TDigestOptions._set_options_TakeOptionsTakeOptionsTakeOptions.__init___TakeOptions.__reduce_cython___TakeOptions.__setstate_cython___TakeOptions._set_options_TrimOptionsTrimOptionsTrimOptions.__init___TrimOptions.__reduce_cython___TrimOptions.__setstate_cython___TrimOptions._set_optionsUdfContextUdfContext.__reduce_cython__UdfContext.__setstate_cython___Utf8NormalizeOptionsUtf8NormalizeOptionsUtf8NormalizeOptions.__init___Utf8NormalizeOptions.__reduce_cython___Utf8NormalizeOptions.__setstate_cython___Utf8NormalizeOptions._set_options_VarianceOptionsVarianceOptionsVarianceOptions.__init___VarianceOptions.__reduce_cython___VarianceOptions.__setstate_cython___VarianceOptions._set_optionsVectorFunctionVectorKernelVectorKernel.__reduce_cython__VectorKernel.__setstate_cython___WeekOptionsWeekOptionsWeekOptions.__init___WeekOptions.__reduce_cython___WeekOptions.__setstate_cython___WeekOptions._set_options_WinsorizeOptionsWinsorizeOptionsWinsorizeOptions.__init___WinsorizeOptions.__reduce_cython___WinsorizeOptions.__setstate_cython___WinsorizeOptions._set_options_ZeroFillOptionsZeroFillOptionsZeroFillOptions.__init___ZeroFillOptions.__reduce_cython___ZeroFillOptions.__s""etstate_cython___ZeroFillOptions._set_optionsadd_checkedallallow_arrow_extensionsallow_decimal_truncateallow_float_truncateallow_int_overflowallow_invalid_utf8allow_time_overflowallow_time_truncateambiguous_ambiguous_mapand_kleenearg_namesargsargumentargumentsarityarrayasarrayascendingasyncio.coroutinesat_endat_startbatch_lengthbiasedboundscheckbufbufferbuffer_sizec_argsc_argumentsc_arityc_batchc_bufc_contextc_exec_ctxc_fieldc_field_metadatac_field_namesc_func_docc_func_namec_func_registryc_functionc_in_typesc_key_namesc_namec_optionsc_out_typec_output_typec_readerc_register_funcc_schemac_typec_unexpected_key_behaviorcalendar_based_origincall_callcall_functioncall_tabular_functioncastceil_is_strictly_greatercharacters__class____class_getitem__cline_in_tracebackclscollectionscontextcount_from_zerodayddofdefaultdeltadensedescendingdescription_deserializedeserialize__dict___dictdivide_checked__doc__downdropearliestemit_nullencodeequalequalserror_is_nullexception_classexpressionexpressions_fieldfield_metadatafield_namesfield_nullabilityfield_reffirstfirst_week_is_fully_in_year_forbid_instantiationform_form_mapformatfrom_batchesfrom_substraitfrombytesfunc__func__func_registryfunc_specfunction_docfunction_namefunction_registryget_function_get_udf_contextgetfullargspec__getstate__greatergreater_equalhalf_downhalf_to_evenhalf_to_oddhalf_towards_infinityhalf_towards_zerohalf_uphash_aggregatehigherhourignoreignore_casein_typein_typesindices__init__initializerinspectint32interp_interp_mapinterpolationinvert_is_coroutineis_inis_nanis_nullis_safeis_validisinitemskkey_nameskeyskind_kind_mapklasslastlatestlean_left_on_odd_paddinglengthlessless_equalliblinearlist_functionslocalelowerlower_limit__main__maskmaxmax_indexmax_replacementsmax_splitsmaxsizemaybe_optionsmemory_poolmessagemeta__metaclass__metadatamicrosecondmidpointmillisecondminmin_count_min_count_docminutemode_mode_map__module__modulemonth__mro_entries__msmsgmultiplemultiply_checkedn__name__namename_or_idxnamedtuplenamesn""an_is_nullnanosecondndarrayndigitsnearestnested_nested_field__new__nextnonexistent_nonexistent_mapnot_equalnpnsnull_encoding_null_encoding_mapnull_handling_null_handling_mapnull_placementnull_replacementnull_selection_behavior_null_selection_mapnum_argsnum_kernelsnumpyoccurrence_occurrence_maponly_nullonly_validoptionsoptions_classoptions_requiredor_kleeneorderotherout_typeoutput_typepadding__pas_paspaspatternperiodpivotpoolpop__prepare__pyarrow._computepyarrow.libpyarrow.substraitpyarrow.util__pyx_capi____pyx_checksum__pyx_result__pyx_state__pyx_type__pyx_unpickle_Kernel__pyx_vtable__q__qualname__quantilesquarterquery_keyraise_raise_invalid_function_optionreaderrecursive__reduce____reduce_cython____reduce_ex__register_aggregate_functionregister_funcregister_scalar_functionregister_tabular_function_register_user_defined_functionregister_vector_functionreplacereplacementresresultreturn_fixed_size_listreverseround_moderun_end_tyrun_end_typessafesafe_vars_passedscalar_scalarscalar_aggregateschemasecondselfserializeserialize_expressions__set_name___set_options_set_safe_set_type_set_unsafesetdefault__setstate____setstate_cython__skipskip_nulls_skip_nulls_doc__slots__sort_keysstacklevelstartstartswithstatestaticmethodstepstop__subclasses__subclassessubclasses_insteadsubstrait_substrait_msgsubtract_checkedsummarysyssystemtarget_type__test__tiebreaker_tiebreaker_maptimezoneto_substraittobytestowards_infinitytowards_zerotypetype_nameunexpected_key_behaviorunit_unit_mapunsafeupupdateupper_limitususe_setstatevalsetvaluevalue_setvaluesvarargsvectorwarnwarningsweekweek_startweek_starts_mondaywidthwrappedyear. arrow::FieldRef (PyObject *)\000 arrow::compute::NullPlacement (PyObject *)\000 arrow::compute::SortOrder (PyObject *)\000arrow::compute::Expression (struct __pyx_obj_7pyarrow_8_compute_Expression *, struct __pyx_obj_7pyarrow_3lib_Schema *)\000std::vector< arrow::compute::SortKey>  (PyObject *, struct __pyx_opt_args_7pyarrow_8_compute_unwrap_sort_keys *__pyx_optional_args)""\000_ensure_field_ref\000unwrap_null_placement\000unwrap_sort_order\000_bind\000unwrap_sort_keys arrow::MemoryPool *(struct __pyx_obj_7pyarrow_3lib_MemoryPool *)\000PyObject *( arrow::Datum const &)\000PyObject *( arrow::MemoryPool *)\000PyObject *(std::shared_ptr< arrow::Buffer>  const &)\000PyObject *(std::shared_ptr< arrow::DataType>  const &)\000PyObject *(std::shared_ptr< arrow::Schema>  const &)\000int (arrow::Status const &)\000std::shared_ptr< arrow::Buffer>  (PyObject *)\000std::shared_ptr< arrow::DataType>  (PyObject *)\000std::shared_ptr< arrow::KeyValueMetadata const >  (PyObject *)\000std::shared_ptr< arrow::Scalar>  (PyObject *)\000std::shared_ptr< arrow::Schema>  (PyObject *)\000struct __pyx_obj_7pyarrow_3lib_DataType *(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_7pyarrow_3lib_ensure_type *__pyx_optional_args)\000maybe_unbox_memory_pool\000wrap_datum\000box_memory_pool\000pyarrow_wrap_buffer\000pyarrow_wrap_data_type\000pyarrow_wrap_schema\000check_status\000pyarrow_unwrap_buffer\000pyarrow_unwrap_data_type\000pyarrow_unwrap_metadata\000pyarrow_unwrap_scalar\000pyarrow_unwrap_schema\000ensure_typearrow::compute::Expression\000_true\320\0040\260\001\330\010\013\320\013\034\230C\230q\330\014 \240\001\330\010\014\210M\230\021\230)\240=\260\001\320\004\032\320\0320\260\001\330\010\014\210M\230\021\320\032+\2501\200\001\330\004\013\2101\320\004\027\320\0271\3201J\310!\330\010\014\210M\230\021\230+\320%5\260Q\320\0041\260\021\330$1\260\021\360&\000\r1\260\001\330\014 \320 7\260q\270\001\330\014&\240l\260!\2601\360\010\000\t\033\230!\2306\240\021\240'\250\021\340\010\013\2108\2207\230!\330\014\030\230\007\230|\2501\340\010\013\2107\220'\230\021\330\014\023\220:\230Q\330\021\022\330\020\031\230\036\240q\330\024\030\230\n\240(\250!\2509\260K\270q\300\001\360\006\000\022\023\330\020\031\230\036\240q\330\024\030\230\n\240(\250!\2507\260)\2701\330+,\250A\360\006\000\t\020\210z\230\021\230!\200\001\360\006\000\005\014\2101\320\004#\2401\330\010\014""\210M\230\021\230)\2401\320\004\027\320\0271\260\021\330\010\014\210M\230\021\230+\240Q\320\004\032\320\032+\2501\330\010\014\210M\230\021\230,\240a\320\004\032\320\032+\2501\330\010\013\210;\220c\230\021\330\014\032\230!\330\010\014\210M\230\021\230,\240a\320\004\027\320\0272\260!\330\010\014\210M\230\021\230/\250\021\320\004\027\320\0273\2601\330\010\014\210M\230\021\230(\240!\320\004\032\320\0323\2601\330\021\022\330\010\014\210M\230\021\230!\330\032+\2501\320\004\032\230(\320\"3\2601\330\010\014\210M\230\021\230&\240\014\250A\200\001\33034\330\004\n\210/\230\021\230$\230a\320\0377\260q\270\001\320\004#\320#4\260A\330\010\013\210;\220c\230\021\330\014\032\230!\330\010\014\210M\230\021\230)\240<\250q\320\004)\250\033\3204N\310a\360\006\000\t\020\320\017$\240A\330\014\r\330\014\037\230{\250%\250s\260!\330\021%\240Y\250a\330\014\r\330\014\036\230k\320)@\300\003\3001\330\021$\240H\250A\340\010\014\210H\220F\230!\2301\320\004$\320$7\260q\330\010\014\210M\230\021\230*\240K\250q\200A\330IJ\360\n\000\t\r\210L\230\001\330\014\017\210t\220:\230Q\230j\250\001\340\020\021\330\024\037\230z\250\030\260\021\260!\330\027\030\330\024\032\230)\2401\330\030\031\330\014\027\220z\240\022\240=\260\t\270\021\340\010\013\2108\2207\230!\330\014\030\230\007\230w\240a\340\010\031\230\025\230a\320\0372\260!\330\014\023\2201\320\024$\240D\250\001\250\036\260q\320\000!\240\021\330\004\n\210\"\210A\210U\220!\330\004\007\200q\330\010\025\220Q\220c\230\032\2404\240w\250e\2601\330\010\017\320\0175\260Q\260d\270%\270q\300\001\330\004\n\210)\2201\220A\200\001\330\004$\240A\240V\2501\200A\360\n\000\r0\250{\270.\310\001\330\010\014\210E\220\021\320\0221\260\021\330\010\014\210J\220a\220q\330\010\013\320\013\036\230g\240Q\330\014\020\320\020&\240a\330\010\013\320\013\037\230w\240a\330\014\020\320\020'\240q\330\010\013\320\013\037\230w\240a\330\014\020\320\020'\240q\330\010\013\320\013\"\240'\250\021\330\014\020\320\020*\250!\330\010\013\320\013 \240\007\240q\330\014\020\320\020(\250\001\330\010\013""\320\013\036\230g\240Q\330\014\020\320\020&\240a\320\004\027\320\027,\250A\330\021+\2501\330\021.\250a\330\021\022\330\010\014\210M\230\021\230-\320';\2701\330\032/\250q\330\0320\260\001\200A\360\010\000\t\014\320\013#\2403\240a\330\014(\250\001\330\r%\240S\250\001\330\014(\250\001\340\014\022\220*\230A\330\020\021\33045\260Q\340\010\014\210E\220\021\330\014\027\220z\240\021\240'\250\021\250!\340\010\014\210H\220F\230!\330\014\"\240!\2404\240q\250\016\260a\200A\360\n\000\t\014\2103\210a\210w\220c\230\021\330\014\022\220*\230A\230Q\330\010\016\210h\220a\220s\230!\2301\330\010\014\210H\220A\330\014\017\210z\230\021\230&\240\001\330\020\026\220j\240\001\240\031\250!\2505\260\001\340\020\026\220j\240\001\240\031\250!\250;\260g\270Q\270a\330\010\031\230\025\230a\320\0373\2601\260I\270Q\270d\300!\3001\200A\330\010\013\2104\210z\230\021\230*\240A\330\014\r\330\020\033\2303\230g\240Q\240a\330\023\024\330\020.\250a\330\024\036\230a\330\024$\240A\340\010\014\210H\220F\230!\330\014'\240q\330\020%\240Q\240k\3201B\300!\3001\200A\330\010\013\2104\210z\230\021\230+\240S\250\001\330\014\030\230\003\2307\240!\2401\340\010\014\210M\230\021\230+\240Q\200A\360$\000\t\014\2104\210z\230\021\230(\240!\330\014\025\220S\230\006\230a\230q\340\010\022\320\022\"\240!\2401\330\010\017\210z\230\026\230q\240\t\250\021\250'\260\021\200A\330\010\013\2106\220\023\220A\330\014\020\220\010\230\006\230a\320\0375\260Q\260a\330\r\027\220q\230\007\230q\330\014\020\220\010\230\006\230a\320\0375\260Q\330\020%\240Q\240h\250a\340\014\r\330\020\030\230\003\2307\240!\2401\330\020\024\220H\230F\240!\320#9\270\021\330\024)\250\021\250(\260!\330\023\024\330\020.\250a\330\024\033\320\033A\300\021\200A\330\010\021\320\021$\240A\240^\2601\330\014 \240\001\240\024\240Q\330\010\017\210z\320\031)\250\021\200A\330\010\014\210E\220\033\320\034.\250a\330\014\034\230M\250\027\260\001\200A\330\010\014\210E\220\033\320\034.\250a\330\014\034\230M\250\025\250a\200\001\360\010\000\005\r\210A\330\004\014\210G\2201\220F\230,\240a""\330\004\007\200v\210W\220E\230\024\230Q\330\010\022\220!\330\010\027\220q\340\010\027\220q\330\004\007\200q\330\010\017\320\017'\240t\2501\250G\260;\270g\300Q\340\010\017\320\017'\240t\2501\250G\260;\270a\200A\360\010\000\t\r\210H\220A\330\014\031\230\032\2401\240G\2501\250A\330\010\014\210L\230\001\330\014\034\230J\240a\320'>\270a\270q\330\010\014\210H\220F\230!\330\014\"\240!\240?\260!\330#$\200A\330\010\014\210H\220F\230!\330\014 \240\001\240\027\250\001\250\031\260'\270\021\270!\200A\330\010\014\210H\220F\230!\330\014(\250\001\250\027\260\001\260\021\330)0\260\001\260\021\330)*\200A\330\010\014\210H\220F\230!\320\0330\260\001\330\014\035\230Q\230h\320&;\2701\270A\200A\330\010\014\210H\220F\230!\320\0330\260\001\260\035\270a\200A\330\010\014\210H\220F\230!\320\033;\2701\270A\200A\330\010\014\210H\220F\230!\320\033+\2501\250A\200A\330\010\014\210H\220F\230!\320\033+\2501\250C\250|\2701\200A\330\010\014\210H\220F\230!\320\033+\2501\250G\2601\260A\200A\330\010\014\210H\220F\230!\320\033+\2501\250L\270\010\300\001\200A\330\010\014\210H\220F\230!\330\014#\2401\320$5\260Q\260a\200A\330\010\014\210H\220F\230!\320\033+\2501\330\014\034\230A\320\0352\260!\330\014!\240\021\240!\200A\330\010\014\210H\220F\230!\320\0332\260!\2601\200A\330\010\014\210H\220F\230!\330\014!\240\021\320\"3\2601\200A\330\010\025\220[\240\001\240\021\330\010\014\210H\220F\230!\320\0333\2601\3204L\310A\310Q\200A\330\010\014\210H\220F\230!\320\0333\2601\260G\2701\270A\200A\330\010\014\210H\220F\230!\320\0333\2601\330\014\023\320\023(\250\001\250\021\200A\330\010\014\210H\220F\230!\320\0336\260a\260|\3001\200A\330\010\014\210H\220F\230!\230?\250!\2507\260'\270\021\270*\300A\200A\330\010\014\210H\220F\230!\320\0337\260q\270\007\270q\300\001\200A\330\010\014\210H\220F\230!\320\033,\250A\250\\\270\021\200A\330\010\014\210H\220F\230!\330\014$\240A\240W\250A\250Z\260|\3001\200A\330\010\014\210H\220F\230!\320\033,\250A\250W\260F\270!\200A\330\010\014\210H\220F\230!\330\014$\240A\240W\250F\260'\270\021\270!""\200A\340\010\014\210H\220F\230!\330\014\034\230A\320\0351\260\021\330\035\036\200A\330\010\014\210H\220F\230!\330\014$\240A\320%5\260Q\260a\330%:\270!\2701\200A\330\010\014\210H\220F\230!\320\033,\250A\320-B\300!\3001\200A\340\010\014\210H\220F\230!\330\014%\240Q\330\020\032\320\0324\260A\260Q\330\020$\240A\330\020\021\200A\330\010\014\210H\220F\230!\330\014\035\230Q\230i\320'8\270\001\270\021\200A\330\010\014\210H\220F\230!\320\033.\250a\250q\200A\330\010\014\210H\220F\230!\320\033.\250a\250s\3202B\300!\320CX\320XY\200A\330\010\014\210H\220F\230!\330\014&\240a\240w\250a\250z\270\021\200A\330\010\014\210H\220F\230!\320\033/\250q\260\001\200A\340\010\014\210H\220F\230!\330\014\037\230q\240\013\2507\260-\270q\330 !\200A\330\010\014\210H\220F\230!\320\033/\250q\260\006\260l\300!\200A\330\010\014\210H\220F\230!\320\033/\250q\260\007\260w\270a\270q\200A\330\r\016\360\022\000\t\020\210{\230!\330\010\014\210J\220a\330\010\014\210J\220a\220q\330\010\017\210q\200A\330\017\020\360\022\000\t\020\210{\230!\330\010\014\210L\230\001\330\010\014\210J\220a\220q\330\010\017\210q\200A\330\010\014\210M\230\021\230'\240\021\240!\200A\330\010\014\210M\230\021\230!\200A\330\010\014\210M\230\021\230#\230Q\200A\330\010\014\210M\230\021\230'\240\026\240q\200A\330\010\014\210M\230\021\230-\240q\200A\360\026\000\r)\320(=\270Q\270a\330\014\r\330\020*\250!\2506\260\021\340\010\024\220I\230Q\230n\250A\250T\260\021\260!\330\010\024\220I\230Q\230i\240t\2502\250]\270\"\270J\300a\330\010\021\220\027\230\001\330\010\013\210:\220W\230A\330\014\022\220*\230A\320\0353\2601\260A\330\010\020\220\006\220a\220q\330\010\022\220%\220x\230q\240\001\330\t\033\2308\2405\250\001\250\021\330\010\017\210q\200A\360\n\000\t\014\210:\220Q\220g\230Q\330\014\025\220Q\340\014\025\220S\230\007\230q\240\001\340\010\031\230\025\230a\320\0374\260A\260V\2707\300!\200A\340\010\013\210:\220Q\220j\240\006\240h\250d\260$\260c\270\021\270!\340\014\020\220\010\230\006\230a\330\020'\240q\250\r\260Q\330\014\r\340\010#\320#4\260A""\260Q\330\010\014\210H\220F\230!\320\0332\260!\2601\200A\340\010\013\210:\220Q\220k\240\021\330\014\022\220&\230\001\230\032\2402\240X\250Z\260q\330\r\027\220q\230\013\2401\330\014\022\220&\230\001\330\020\032\230\"\230O\250:\260Q\340\r\027\220q\230\013\2401\330\014\022\220&\230\001\230\032\2402\240Y\250j\270\007\270q\340\014*\250!\250;\260a\330+;\2701\340\010\014\210H\220F\230!\320\0330\260\001\260\026\260y\300\001\200A\360\n\000\t\014\210:\220Q\220m\2401\330\014\035\230U\240!\320#>\270a\270q\340\014\026\220i\230q\240\013\2507\260!\2601\330\014\035\230U\240!\320#7\260q\270\001\320\000)\250\033\260A\360*\000\005\023\220'\230\021\230!\330\004\007\200~\220S\230\001\330\010\032\230!\340\010\033\320\033-\250^\2701\330\004\007\200u\210C\210q\330\010\017\210q\330\004\026\220a\220v\230Q\230a\340\t\n\330\010\023\220>\240\021\320\"5\260Q\330\014\031\230\030\240\021\330\004\r\320\r\036\230h\240a\240q\330\004\n\210*\220A\330\004\013\320\013\034\230M\250\021\320*=\270Q\270f\300I\310W\320TY\320YZ\200A\330\010\013\210:\220W\230D\240\001\330\014*\250!\2501\330+,\330\010\013\210<\220w\230d\240!\330\014*\250!\2501\330+,\330\010\014\210H\220F\230!\330\014&\240a\240w\250a\250q\330'+\250?\270!\2701\330'+\320+<\270A\270Q\200A\330\010\t\330\014\020\220\010\230\006\230a\320\0370\260\001\260\024\260Z\270q\300\001\330\017\020\330\014*\250!\2506\260\021\200A\330\010\t\330\014\020\220\010\230\006\230a\330\020 \240\001\320!1\260\021\260!\330!6\260a\260q\330!%\320%5\260Q\260a\340\017\020\330\014*\250!\250<\260q\200A\330\010\t\330\014\020\220\010\230\006\230a\330\020 \240\001\240\024\320%8\270\001\270\021\330!(\250\001\250\021\340\017\020\330\014*\250!\250?\270!\200A\330\010\t\330\014\020\220\010\230\006\230a\330\020\"\240!\330\024\030\320\030,\250A\250Q\360\006\000\020\021\330\014*\250!\2501\330+,\200A\330\010\t\330\014\020\220\010\230\006\230a\330\020$\240A\240W\250A\250Y\260d\270*\300A\300Q\330%&\340\017\020\330\014*\250!\2506\260\021\200A\330\010\t\330\014\020\220\010\230\006\230a\330\020,""\250A\330\024\030\320\030+\2501\250A\360\006\000\020\021\330\014*\250!\250?\270!\200A\330\010\t\330\014\020\220\010\230\006\230a\330\020$\240A\240[\260\004\260L\300\001\300\021\330%1\260\021\340\017\020\330\014*\250!\2508\2601\200A\330\010\t\330\014\020\220\010\230\006\230a\330\020%\240Q\330\024)\250\021\250!\330\024\030\320\030(\250\001\250\021\360\006\000\020\021\330\014*\250!\2501\330+,\200A\340\010\031\230\025\230a\230~\250Q\320.D\300A\330\014!\240\021\240!\200A\330\010\t\330\014\020\220\010\230\006\230a\330\020)\250\021\250$\250j\270\001\270\021\340\017\020\330\014*\250!\2501\330+,\200A\340\010\017\210\177\230d\240!\200A\360\010\000\t'\240d\250)\3203D\300A\330\010\017\210q\220\t\230\021\230&\240\004\240H\250A\200A\360*\000\t\027\220d\230\"\320\034-\250_\270A\270X\300Q\330\010\013\2103\210a\210}\230C\230q\330\014\022\220*\230A\230Q\330\010\013\2103\210a\210}\230B\230a\330\014\022\220*\230A\330\020\021\330\010\017\210t\2201\220D\230\001\230\033\240G\2501\200A\360\024\000\r\037\230g\240Q\240a\340\r\016\330\014\023\220>\240\021\240$\240i\250|\2701\270A\330\010\017\210}\230A\230Q\200A\330\010\013\210<\220s\230!\330\014\020\220\010\230\006\230a\320\0371\260\021\330\036/\250q\330\014\r\340\010\013\2104\210z\230\021\230-\240q\330\014\r\330\020\036\230d\240!\2401\330\023\024\330\020\026\220i\230q\330\024\025\33001\260\021\340\010\013\210<\220r\230\021\330\014\034\230A\330\010\014\210H\220F\230!\320\033-\250Q\330\032#\2401\240A\200A\360\024\000\t\020\210t\2205\230\007\230q\240\005\240W\250A\200A\340\014/\250t\260<\270r\300\032\3101\330\014(\250\016\260a\260q\330\010\017\320\017\"\240!\2401\200A\330\010\017\210u\220F\230$\230i\320';\2701\330\024\032\230$\230i\320'<\270A\330\024\032\230$\230i\320'<\270A\330\024\032\230$\230i\320'?\270q\330\024\032\230$\230i\320'=\270Q\330\024\032\230$\230i\240q\320\004$\240A\330\010\013\210<\220w\230a\330\014\022\220$\220i\230q\330\021\034\230K\240q\250\r\260Q\200A\360\026\000\t\020\210z\230\026\230q\240\n\250!\2501\200A\360\026\000\t\020""\210z\230\026\230q\240\014\250A\250Q\320\004$\240C\240v\250Q\330\010\014\210M\230\021\230!\320\004\030\230\013\240>\260\021\360(\000\t\035\230E\240\027\250\006\250d\260%\260w\270a\340\010\013\320\013\034\230E\240\030\250\027\260\001\330\014\022\220*\230A\230Q\360\006\000\t\014\2108\2203\220a\330\014\023\220;\230a\320\0370\260\001\330\014\017\210u\220C\220q\330\020\032\230+\240W\250A\250Q\340\020\032\230+\240U\250!\2501\330\010\017\210z\230\026\230q\240\010\250\001\250\027\260\001\200\001\330\036\037\360J\001\000\005\010\200z\220\021\220*\230A\330\010\023\320\023(\250\001\250\021\330\r\016\330\014\025\320\025,\250K\260}\300A\300V\3109\320T[\320[\\\330\010\023\320\023)\250\021\250!\330\004\013\320\013*\250!\320+H\310\001\330+1\260\037\300\016\310a\330+5\260Q\200\001\330./\360L\001\000\005\010\200x\210q\220\001\330\010\025\220[\240\001\340\010\016\210i\220q\230\001\340\004\022\220'\230\021\230!\340\004\020\220\007\220\177\240a\240q\330\004\020\220\001\330\004\007\200z\220\021\220*\230A\330\010\014\210K\220x\230w\240a\330\014\026\220j\240\001\330\020(\250\001\250\033\260A\260Q\330\010\024\220A\220_\240H\250E\260\021\330\010\023\2203\220a\220q\340\010\016\210i\220q\330\014\r\340\004\016\210f\220A\220V\230:\240Y\250a\340\004\007\200z\220\027\230\001\330\010\016\210j\230\001\230\021\340\004\007\200~\220W\230A\330\010\016\210j\230\001\230\021\340\004\007\200|\2207\230!\330\010\016\210j\230\001\230\021\340\004\021\320\021#\2401\240A\340\004\021\320\021)\250\021\250+\260Q\260a\340\004\r\210]\230!\330\004\r\210Y\220a\330\004\r\210\\\230\021\330\004\r\210_\230A\330\004\r\210_\230A\340\004\007\200~\220S\230\001\330\010\032\230!\340\010\033\320\033-\250^\2701\340\004\027\220}\240N\260!\340\004\020\220\001\220\037\240\001\240\021\330!9\270\021\270!\330!,\250A\320\004\032\230!\330\010\014\210M\230\021\230!\320\004\027\220{\240!\330\010\014\210M\230\021\230)\2401\320\004!\240\021\330\010\014\210M\230\021\230'\240\021\320\004\027\220|\240?\260!\330\021\022\330\021\022\330\010\014""\210M\230\021\230*\240F\250!\330\032\033\330\032\033\320\004\027\320\027(\250\001\330\010\014\210M\230\021\230+\240Q\320\004\032\320\032+\250=\270\001\330\010\014\210M\230\021\230,\240h\250a\200\001\330\035\036\360N\002\000\005\014\320\013*\250!\320+G\300q\330+1\260\037\300\016\310a\330+5\260Q\200\001\330\004\n\210+\220Q\320\004Q\320QR\360*\000\t\020\210t\2202\320\025+\2501\250A\250W\260A\260_\300H\320Lc\320cd\320\004%\240Q\330\010\014\210M\230\021\230(\240&\250\001\320\004\027\320\027-\250Q\330\010\014\210M\230\021\230'\240\021\320\004\027\220~\240Q\330\010\014\210M\230\021\230*\240A\320\004\027\220~\240Q\330\010\014\210M\230\021\230+\240Q\320\004%\240Q\330\010\014\210M\230\021\230+\240Q\200\001\360\030\000\005\014\320\013 \240\r\250Q\250a\320\004\027\320\027*\250!\330\021\022\330\010\013\320\013\035\230S\240\001\330\014 \240\001\240\026\240r\250\023\250A\250Q\330\010\013\210?\230#\230Q\330\014\035\230Q\230f\240B\240c\250\021\250!\330\010\014\210M\230\021\230-\320':\270!\200\001\330\035\036\360V\002\000\005\014\320\013*\250!\320+G\300q\330+1\260\037\300\016\310a\330+5\260Q\200\001\340\004\r\210X\320\025,\250A\250Q\330\004\r\320\r\035\230Q\330\004\016\210o\230Q\230a\330\004\013\2101\200\001\330\004\013\320\013(\250\001\250\021\320\004\036\230a\330\010\014\210M\230\021\230'\240\021\320\004\027\220\177\240a\330\010\014\210M\230\021\230'\240\021\320\004\027\220\177\240a\330\010\020\220\005\220Q\330\014\025\220W\230A\320\0355\260X\270Q\330\014\r\330\014\027\220q\340\010\014\210M\230\021\230'\240\021\200\001\330 !\360f\002\000\005\014\320\013*\250!\320+J\310!\330+1\260\037\300\016\310a\330+5\260Q\320\004\036\230k\250\021\330\010\013\2105\220\003\2201\330\014\023\2203\220a\330\014\017\210u\220B\220a\330\020\027\220q\230\001\330\010\014\210M\230\021\230'\240\026\240q\320\004\036\230k\250\030\260\021\330\010\014\210M\230\021\230'\240\026\240v\250Q\320\004\036\230m\2501\330\010\014\210M\230\021\230'\240\031\250!\320\000\036\230n\320,>\270a\360*\000\005\014\320\013 \240\r""\250Q\250a\330\004\013\2104\210u\220A\220V\2308\2409\250L\270\001\330\025\034\230A\320\004&\240o\260Q\330\010=\270Q\330\010\013\210<\220w\230a\330\014\034\320\0344\260A\260[\300\001\300\021\330\010\014\210H\220F\230!\330\014*\250!\250;\260a\200\001\340\004\037\230q\320 0\260\013\270;\300k\320QR\330\004\023\2206\230\030\240\021\240!\330\004\007\200|\2207\230!\330\010(\250\001\250\031\260.\300\001\330\004\013\2101\200\001\360\010\000\005\014\320\013 \240\017\250q\320\004\027\220q\330\010\014\210M\230\021\230!\320\004'\240q\360 \000\t\023\220+\230Q\230l\250!\330\010\017\210z\230\026\230q\240\013\2501\250G\2601\200\001\330\004\005\330\004\007\200v\210S\220\001\330\010\t\330\023\024\330\014\024\220A\330\017\020\330\014\022\220+\230Q\230a\330\004\013\2101\320\004\027\220x\320\0370\260\001\330\010\014\210M\230\021\230#\230\\\250\021\320\004\027\220z\320!9\270\021\330\021\022\330\010\013\2104\210z\230\021\230#\230Q\330\014\020\220\001\220\021\330\010\014\210M\230\021\230#\230_\250L\270\001\320\004\027\220z\240\033\320,=\270Q\330\021\022\330\010\013\2104\210z\230\021\230#\230Q\330\014\020\220\001\220\021\330\010\014\210M\230\021\230#\230W\240M\260\034\270Q";
    PyObject *data = NULL;
    CYTHON_UNUSED_VAR(__Pyx_DecompressString);
    #endif
    PyObject **stringtab = __pyx_mstate->__pyx_string_tab;
    Py_ssize_t pos = 0;
    for (int i = 0; i < 922; i++) {
      Py_ssize_t bytes_length = index[i].length;
      PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL);
      if (likely(string) && i >= 149) PyUnicode_InternInPlace(&string);
      if (unlikely(!string)) {
        Py_XDECREF(data);
        __PYX_ERR(0, 1, __pyx_L1_error)
      }
      stringtab[i] = string;
      pos += bytes_length;
    }
    for (int i = 922; i < 1071; i++) {
      Py_ssize_t bytes_length = index[i].length;
      PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length);
      stringtab[i] = string;
      pos += bytes_length;
      if (unlikely(!string)) {
        Py_XDECREF(data);
        __PYX_ERR(0, 1, __pyx_L1_error)
      }
    }
    Py_XDECREF(data);
    for (Py_ssize_t i = 0; i < 1071; i++) {
      if (unlikely(PyObject_Hash(stringtab[i]) == -1)) {
        __PYX_ERR(0, 1, __pyx_L1_error)
      }
    }
    #if CYTHON_IMMORTAL_CONSTANTS
    {
      PyObject **table = stringtab + 922;
      for (Py_ssize_t i=0; i<149; ++i) {
        #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
        #if PY_VERSION_HEX < 0x030E0000
        if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
        #else
        if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
        #endif
        {
          Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);
        }
        #else
        Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
        #endif
      }
    }
    #endif
  }
  {
    PyObject **numbertab = __pyx_mstate->__pyx_number_tab;
    double const c_constants[] = {0.5,1.0};
    for (int i = 0; i < 2; i++) {
      numbertab[i] = PyFloat_FromDouble(c_constants[i]);
      if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  {
    PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 2;
    int8_t const cint_constants_1[] = {0,-1,1,2,100};
    int16_t const cint_constants_2[] = {500};
    int32_t const cint_constants_4[] = {238750788L};
    for (int i = 0; i < 7; i++) {
      numbertab[i] = PyLong_FromLong((i < 5 ? cint_constants_1[i - 0] : (i < 6 ? cint_constants_2[i - 5] : cint_constants_4[i - 6])));
      if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  {
    PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 9;
    const char* c_constant = "g000000000000";
    for (int i = 0; i < 1; i++) {
      char *end_pos;
      numbertab[i] = PyLong_FromString(c_constant, &end_pos, 32);
      if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error)
      c_constant = end_pos + 1;
    }
  }
  #if CYTHON_IMMORTAL_CONSTANTS
  {
    PyObject **table = __pyx_mstate->__pyx_number_tab;
    for (Py_ssize_t i=0; i<10; ++i) {
      #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
      #if PY_VERSION_HEX < 0x030E0000
      if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1)
      #else
      if (PyUnstable_Object_IsUniquelyReferenced(table[i]))
      #endif
      {
        Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);
      }
      #else
      Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);
      #endif
    }
  }
  #endif
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: init_codeobjects ### */
typedef struct {
    unsigned int argcount : 4;
    unsigned int num_posonly_args : 1;
    unsigned int num_kwonly_args : 3;
    unsigned int nlocals : 5;
    unsigned int flags : 10;
    unsigned int first_line : 12;
} __Pyx_PyCode_New_function_description;
/* NewCodeObj.proto */
static PyObject* __Pyx_PyCode_New(
        const __Pyx_PyCode_New_function_description descr,
        PyObject * const *varnames,
        PyObject *filename,
        PyObject *funcname,
        PyObject *line_table,
        PyObject *tuple_dedup_map
);


static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) {
  PyObject* tuple_dedup_map = PyDict_New();
  if (unlikely(!tuple_dedup_map)) return -1;
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 58};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pas_3};
    __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_pas_2, __pyx_mstate->__pyx_kp_b_iso88591_vS_A_Qa_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 69};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_klass, __pyx_mstate->__pyx_n_u_subclasses_instead, __pyx_mstate->__pyx_n_u_msg, __pyx_mstate->__pyx_n_u_subclasses_2, __pyx_mstate->__pyx_n_u_cls};
    __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_forbid_instantiation, __pyx_mstate->__pyx_kp_b_iso88591_AU_q_Qc_4we1_5Qd_q_1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_state, __pyx_mstate->__pyx_n_u_dict_2, __pyx_mstate->__pyx_n_u_use_setstate};
    __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_A_G1F_a_vWE_Q_q_q_q_t1G_gQ_t1G, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_AV1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 305};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_reduce, __pyx_mstate->__pyx_kp_b_iso88591_A_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 360};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_options, __pyx_mstate->__pyx_n_u_memory_pool, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_c_options, __pyx_mstate->__pyx_n_u_pool, __pyx_mstate->__pyx_n_u_c_exec_ctx, __pyx_mstate->__pyx_n_u_c_batch, __pyx_mstate->__pyx_n_u_result};
    __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_call, __pyx_mstate->__pyx_kp_b_iso88591_1_1_1_7q_l_1_6_87_1_7_Q_q_9Kq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 529};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_names, __pyx_mstate->__pyx_n_u_name_2};
    __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_list_functions, __pyx_mstate->__pyx_kp_b_iso88591_A_d_3DA_q_HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 536};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_name_2, __pyx_mstate->__pyx_n_u_c_name, __pyx_mstate->__pyx_n_u_func};
    __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_get_function, __pyx_mstate->__pyx_kp_b_iso88591_A_gQa_i_1A_AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 556};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_function_registry, __pyx_mstate->__pyx_kp_b_iso88591_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 560};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name_2};
    __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_get_function, __pyx_mstate->__pyx_kp_b_iso88591_Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 575};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_list_functions, __pyx_mstate->__pyx_kp_b_iso88591_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 582};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name_2, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_options, __pyx_mstate->__pyx_n_u_memory_pool, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_func};
    __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_call_function, __pyx_mstate->__pyx_kp_b_iso88591_n_a_Qa_4uAV89L_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 620};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_res, __pyx_mstate->__pyx_n_u_c_buf};
    __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_serialize, __pyx_mstate->__pyx_kp_b_iso88591_A_t_r_1_aq_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 626};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_buf, __pyx_mstate->__pyx_n_u_c_buf, __pyx_mstate->__pyx_n_u_maybe_options, __pyx_mstate->__pyx_n_u_c_options, __pyx_mstate->__pyx_n_u_type_name, __pyx_mstate->__pyx_n_u_module_2, __pyx_mstate->__pyx_n_u_klass, __pyx_mstate->__pyx_n_u_options};
    __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_deserialize_2, __pyx_mstate->__pyx_kp_b_iso88591_A_Qa_6_IQnAT_IQit2_Ja_WA_A_31A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 1, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 661};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_description, __pyx_mstate->__pyx_n_u_exception_class};
    __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_raise_invalid_function_option, __pyx_mstate->__pyx_kp_b_iso88591_34_a_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 681};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_target_type, __pyx_mstate->__pyx_n_u_allow_int_overflow, __pyx_mstate->__pyx_n_u_allow_time_truncate, __pyx_mstate->__pyx_n_u_allow_time_overflow, __pyx_mstate->__pyx_n_u_allow_decimal_truncate, __pyx_mstate->__pyx_n_u_allow_float_truncate, __pyx_mstate->__pyx_n_u_allow_invalid_utf8, __pyx_mstate->__pyx_n_u_wrapped};
    __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_0_E_1_Jaq_gQ_a_wa_q_wa_q_q_gQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 702};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_target_type};
    __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_type, __pyx_mstate->__pyx_kp_b_iso88591_A_wa_iq_Kq_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 707};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_safe, __pyx_mstate->__pyx_kp_b_iso88591_A_E_a_M_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 711};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_unsafe, __pyx_mstate->__pyx_kp_b_iso88591_A_E_a_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 715};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_is_safe, __pyx_mstate->__pyx_kp_b_iso88591_A_uF_i_1_i_A_i_A_i_q_i_Q_iq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 6, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 794};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_target_type, __pyx_mstate->__pyx_n_u_allow_int_overflow, __pyx_mstate->__pyx_n_u_allow_time_truncate, __pyx_mstate->__pyx_n_u_allow_time_overflow, __pyx_mstate->__pyx_n_u_allow_decimal_truncate, __pyx_mstate->__pyx_n_u_allow_float_truncate, __pyx_mstate->__pyx_n_u_allow_invalid_utf8};
    __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_1_a_M_1_q_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 802};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_target_type, __pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_safe, __pyx_mstate->__pyx_kp_b_iso88591_A_Ja_Jaq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 817};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_target_type, __pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_unsafe, __pyx_mstate->__pyx_kp_b_iso88591_A_L_Jaq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 0, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 833};
    PyObject* const varnames[] = {0};
    __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_skip_nulls_doc, __pyx_mstate->__pyx_kp_b_iso88591_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {0, 0, 1, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 842};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_default};
    __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_min_count_doc, __pyx_mstate->__pyx_kp_b_iso88591__11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 850};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_skip_nulls};
    __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 1, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 863};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_skip_nulls};
    __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 892};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_ndigits, __pyx_mstate->__pyx_n_u_round_mode_2};
    __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_Qi_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 913};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_ndigits, __pyx_mstate->__pyx_n_u_round_mode_2};
    __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_M_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 918};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_round_mode_2};
    __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_1_5Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 937};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_round_mode_2};
    __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_q_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 968};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_multiple, __pyx_mstate->__pyx_n_u_unit, __pyx_mstate->__pyx_n_u_week_starts_monday, __pyx_mstate->__pyx_n_u_ceil_is_strictly_greater, __pyx_mstate->__pyx_n_u_calendar_based_origin};
    __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_Q_4AQ_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 3, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1022};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_multiple, __pyx_mstate->__pyx_n_u_unit, __pyx_mstate->__pyx_n_u_week_starts_monday, __pyx_mstate->__pyx_n_u_ceil_is_strictly_greater, __pyx_mstate->__pyx_n_u_calendar_based_origin};
    __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_M_F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1031};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_multiple, __pyx_mstate->__pyx_n_u_round_mode_2};
    __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_4z_A_3gQa_a_a_A_HF_q_Qk1B_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1062};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_multiple, __pyx_mstate->__pyx_n_u_round_mode_2};
    __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_Q_M_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1073};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_null_handling, __pyx_mstate->__pyx_n_u_null_replacement};
    __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_a_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1097};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_null_handling, __pyx_mstate->__pyx_n_u_null_replacement};
    __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_2_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1102};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pattern, __pyx_mstate->__pyx_n_u_ignore_case};
    __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_awaz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 1, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1120};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pattern, __pyx_mstate->__pyx_n_u_ignore_case};
    __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_1_M_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1125};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_width, __pyx_mstate->__pyx_n_u_padding, __pyx_mstate->__pyx_n_u_lean_left_on_odd_padding};
    __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1145};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_width, __pyx_mstate->__pyx_n_u_padding, __pyx_mstate->__pyx_n_u_lean_left_on_odd_padding};
    __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_m1_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1150};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_width, __pyx_mstate->__pyx_n_u_padding};
    __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_q_waq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1175};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_width, __pyx_mstate->__pyx_n_u_padding};
    __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_a_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1180};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_characters};
    __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_1G1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[77] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[77])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1194};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_characters};
    __pyx_mstate_global->__pyx_codeobj_tab[78] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[78])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1199};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pattern, __pyx_mstate->__pyx_n_u_replacement, __pyx_mstate->__pyx_n_u_max_replacements};
    __pyx_mstate_global->__pyx_codeobj_tab[79] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[79])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[80] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[80])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[81] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[81])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 1, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1222};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pattern, __pyx_mstate->__pyx_n_u_replacement, __pyx_mstate->__pyx_n_u_max_replacements};
    __pyx_mstate_global->__pyx_codeobj_tab[82] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_0_Cq_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[82])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1229};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pattern};
    __pyx_mstate_global->__pyx_codeobj_tab[83] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_31G1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[83])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[84] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[84])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[85] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[85])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1243};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pattern};
    __pyx_mstate_global->__pyx_codeobj_tab[86] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_M_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[86])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1248};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pattern};
    __pyx_mstate_global->__pyx_codeobj_tab[87] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_7q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[87])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[88] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[88])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[89] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[89])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1262};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pattern};
    __pyx_mstate_global->__pyx_codeobj_tab[90] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_M_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[90])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1267};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_stop, __pyx_mstate->__pyx_n_u_step};
    __pyx_mstate_global->__pyx_codeobj_tab[91] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_AWF, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[91])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[92] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[92])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[93] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[93])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1286};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_stop, __pyx_mstate->__pyx_n_u_step};
    __pyx_mstate_global->__pyx_codeobj_tab[94] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_k_5_1_3a_uBa_q_M_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[94])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1295};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_stop, __pyx_mstate->__pyx_n_u_step, __pyx_mstate->__pyx_n_u_return_fixed_size_list};
    __pyx_mstate_global->__pyx_codeobj_tab[95] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_4Na_A_s_Ya_k_1_HA_HF_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[95])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[96] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[96])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[97] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[97])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1329};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_stop, __pyx_mstate->__pyx_n_u_step, __pyx_mstate->__pyx_n_u_return_fixed_size_list};
    __pyx_mstate_global->__pyx_codeobj_tab[98] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_k_M_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[98])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1334};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_stop, __pyx_mstate->__pyx_n_u_replacement};
    __pyx_mstate_global->__pyx_codeobj_tab[99] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_AWF_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[99])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[100] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[100])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[101] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[101])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1354};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_stop, __pyx_mstate->__pyx_n_u_replacement};
    __pyx_mstate_global->__pyx_codeobj_tab[102] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_M_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[102])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1364};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_null_selection_behavior};
    __pyx_mstate_global->__pyx_codeobj_tab[103] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_a_AQ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[103])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[104] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[104])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[105] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[105])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1387};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_null_selection_behavior};
    __pyx_mstate_global->__pyx_codeobj_tab[106] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_q_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[106])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1397};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_null_encoding};
    __pyx_mstate_global->__pyx_codeobj_tab[107] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_a_A_1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[107])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[108] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[108])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[109] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[109])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1421};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_null_encoding};
    __pyx_mstate_global->__pyx_codeobj_tab[110] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_q_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[110])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1426};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_run_end_type, __pyx_mstate->__pyx_n_u_run_end_ty};
    __pyx_mstate_global->__pyx_codeobj_tab[111] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_314LAQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[111])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[112] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[112])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[113] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[113])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1443};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_run_end_type};
    __pyx_mstate_global->__pyx_codeobj_tab[114] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_CvQ_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[114])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1448};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_max_index, __pyx_mstate->__pyx_n_u_output_type, __pyx_mstate->__pyx_n_u_c_output_type};
    __pyx_mstate_global->__pyx_codeobj_tab[115] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_oQ_Q_wa_4A_HF_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[115])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[116] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[116])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[117] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[117])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1475};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_max_index, __pyx_mstate->__pyx_n_u_output_type};
    __pyx_mstate_global->__pyx_codeobj_tab[118] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_Q_M_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[118])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1480};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_max_index};
    __pyx_mstate_global->__pyx_codeobj_tab[119] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[119])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[120] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[120])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[121] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[121])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1497};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_max_index};
    __pyx_mstate_global->__pyx_codeobj_tab[122] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_q_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[122])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1502};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_boundscheck};
    __pyx_mstate_global->__pyx_codeobj_tab[123] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_1A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[123])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[124] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[124])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[125] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[125])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 1, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1518};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_boundscheck};
    __pyx_mstate_global->__pyx_codeobj_tab[126] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[126])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1523};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_field_names, __pyx_mstate->__pyx_n_u_field_nullability, __pyx_mstate->__pyx_n_u_field_metadata, __pyx_mstate->__pyx_n_u_c_field_names, __pyx_mstate->__pyx_n_u_c_field_metadata, __pyx_mstate->__pyx_n_u_name_2, __pyx_mstate->__pyx_n_u_metadata};
    __pyx_mstate_global->__pyx_codeobj_tab[127] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HA_1G1A_L_Ja_aq_HF, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[127])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[128] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[128])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[129] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[129])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 2, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1552};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_field_names, __pyx_mstate->__pyx_n_u_field_nullability, __pyx_mstate->__pyx_n_u_field_metadata};
    __pyx_mstate_global->__pyx_codeobj_tab[130] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_S_r_AQ_Q_QfBc_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[130])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1589};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_indices, __pyx_mstate->__pyx_n_u_field_ref};
    __pyx_mstate_global->__pyx_codeobj_tab[131] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_Qj_hd_c_a_q_Q_4AQ_HF_2_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[131])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[132] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[132])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[133] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[133])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1612};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_indices};
    __pyx_mstate_global->__pyx_codeobj_tab[134] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_M_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[134])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1617};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[135] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_6a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[135])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[136] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[136])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[137] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[137])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 2, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1631};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[138] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_1_M_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[138])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1642};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_mode};
    __pyx_mstate_global->__pyx_codeobj_tab[139] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_a_0_Zq_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[139])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[140] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[140])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[141] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[141])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1660};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_mode};
    __pyx_mstate_global->__pyx_codeobj_tab[142] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_q_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[142])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1665};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_scalar};
    __pyx_mstate_global->__pyx_codeobj_tab[143] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_A_B_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[143])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[144] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[144])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[145] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[145])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1679};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_value};
    __pyx_mstate_global->__pyx_codeobj_tab[146] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_M_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[146])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1690};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_query_key, __pyx_mstate->__pyx_n_u_occurrence};
    __pyx_mstate_global->__pyx_codeobj_tab[147] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_a_Q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[147])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[148] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[148])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[149] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[149])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1716};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_query_key, __pyx_mstate->__pyx_n_u_occurrence};
    __pyx_mstate_global->__pyx_codeobj_tab[150] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_4z_S_7_1_M_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[150])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1724};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[151] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_1C_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[151])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[152] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[152])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[153] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[153])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 2, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1740};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_n, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[154] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_x_0_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[154])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1745};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_value_set, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_valset};
    __pyx_mstate_global->__pyx_codeobj_tab[155] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_Qk_2XZq_q_1_O_Q_q_1_2Yj_q_a_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[155])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[156] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[156])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[157] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[157])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 1, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1776};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_value_set, __pyx_mstate->__pyx_n_u_skip_nulls};
    __pyx_mstate_global->__pyx_codeobj_tab[158] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_Q_M_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[158])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1788};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_format, __pyx_mstate->__pyx_n_u_unit, __pyx_mstate->__pyx_n_u_error_is_null};
    __pyx_mstate_global->__pyx_codeobj_tab[159] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_a_AWAYd_AQ_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[159])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[160] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[160])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[161] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[161])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1816};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_format, __pyx_mstate->__pyx_n_u_unit, __pyx_mstate->__pyx_n_u_error_is_null};
    __pyx_mstate_global->__pyx_codeobj_tab[162] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_Q_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[162])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1821};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_format, __pyx_mstate->__pyx_n_u_locale};
    __pyx_mstate_global->__pyx_codeobj_tab[163] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[163])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[164] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[164])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[165] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[165])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1839};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_format, __pyx_mstate->__pyx_n_u_locale};
    __pyx_mstate_global->__pyx_codeobj_tab[166] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_31_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[166])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1844};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_count_from_zero, __pyx_mstate->__pyx_n_u_week_start};
    __pyx_mstate_global->__pyx_codeobj_tab[167] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[167])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[168] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[168])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[169] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[169])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 2, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1863};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_count_from_zero, __pyx_mstate->__pyx_n_u_week_start};
    __pyx_mstate_global->__pyx_codeobj_tab[170] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_0_M_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[170])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1868};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_week_starts_monday, __pyx_mstate->__pyx_n_u_count_from_zero, __pyx_mstate->__pyx_n_u_first_week_is_fully_in_year};
    __pyx_mstate_global->__pyx_codeobj_tab[171] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_A_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[171])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[172] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[172])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[173] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[173])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 3, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1895};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_week_starts_monday, __pyx_mstate->__pyx_n_u_count_from_zero, __pyx_mstate->__pyx_n_u_first_week_is_fully_in_year};
    __pyx_mstate_global->__pyx_codeobj_tab[174] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_31_M_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[174])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1913};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_timezone, __pyx_mstate->__pyx_n_u_ambiguous, __pyx_mstate->__pyx_n_u_nonexistent};
    __pyx_mstate_global->__pyx_codeobj_tab[175] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_WD_1_wd_1_HF_awaq_1_AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[175])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[176] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[176])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[177] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[177])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 2, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1943};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_timezone, __pyx_mstate->__pyx_n_u_ambiguous, __pyx_mstate->__pyx_n_u_nonexistent};
    __pyx_mstate_global->__pyx_codeobj_tab[178] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_7q_M_Kq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[178])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1948};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_nan_is_null};
    __pyx_mstate_global->__pyx_codeobj_tab[179] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_1A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[179])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[180] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[180])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[181] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[181])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 1, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1962};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_nan_is_null};
    __pyx_mstate_global->__pyx_codeobj_tab[182] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[182])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1967};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_ddof, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[183] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_q_l, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[183])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[184] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[184])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[185] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[185])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 3, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1983};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_ddof, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[186] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_31_M_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[186])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1988};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_biased, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[187] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_1L, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[187])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[188] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[188])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[189] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[189])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 3, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2005};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_biased, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[190] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_M_ha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[190])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2010};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_max_splits, __pyx_mstate->__pyx_n_u_reverse};
    __pyx_mstate_global->__pyx_codeobj_tab[191] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[191])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[192] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[192])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[193] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[193])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 2, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2027};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_max_splits, __pyx_mstate->__pyx_n_u_reverse};
    __pyx_mstate_global->__pyx_codeobj_tab[194] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_1_c_M_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[194])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2034};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pattern, __pyx_mstate->__pyx_n_u_max_splits, __pyx_mstate->__pyx_n_u_reverse};
    __pyx_mstate_global->__pyx_codeobj_tab[195] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_AWAZ_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[195])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[196] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[196])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[197] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[197])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 2, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2055};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pattern, __pyx_mstate->__pyx_n_u_max_splits, __pyx_mstate->__pyx_n_u_reverse};
    __pyx_mstate_global->__pyx_codeobj_tab[198] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_4A_c_M_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[198])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2078};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pivot, __pyx_mstate->__pyx_n_u_null_placement_2};
    __pyx_mstate_global->__pyx_codeobj_tab[199] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_31_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[199])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[200] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[200])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[201] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[201])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 1, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2096};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pivot, __pyx_mstate->__pyx_n_u_null_placement_2};
    __pyx_mstate_global->__pyx_codeobj_tab[202] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_M_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[202])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2101};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_lower_limit, __pyx_mstate->__pyx_n_u_upper_limit};
    __pyx_mstate_global->__pyx_codeobj_tab[203] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_0_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[203])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[204] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[204])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[205] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[205])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2117};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_lower_limit, __pyx_mstate->__pyx_n_u_upper_limit};
    __pyx_mstate_global->__pyx_codeobj_tab[206] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_M_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[206])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2122};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_skip_nulls};
    __pyx_mstate_global->__pyx_codeobj_tab[207] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_6_A_a_5Qa_q_q_a_5Q_Qha_7_1_HF, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[207])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[208] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[208])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[209] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[209])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 1, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2158};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_skip_nulls};
    __pyx_mstate_global->__pyx_codeobj_tab[210] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_a_M_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[210])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 1, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2174};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_start, __pyx_mstate->__pyx_n_u_skip_nulls};
    __pyx_mstate_global->__pyx_codeobj_tab[211] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_a_Q_WA_5XQ_q_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[211])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2184};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_period};
    __pyx_mstate_global->__pyx_codeobj_tab[212] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[212])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[213] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[213])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[214] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[214])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2198};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_period};
    __pyx_mstate_global->__pyx_codeobj_tab[215] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_q_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[215])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2203};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_recursive};
    __pyx_mstate_global->__pyx_codeobj_tab[216] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_2_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[216])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[217] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[217])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[218] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[218])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2218};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_recursive};
    __pyx_mstate_global->__pyx_codeobj_tab[219] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_q_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[219])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2223};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_order, __pyx_mstate->__pyx_n_u_null_placement_2};
    __pyx_mstate_global->__pyx_codeobj_tab[220] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_0_Qh_1A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[220])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[221] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[221])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[222] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[222])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 1, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2242};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_order, __pyx_mstate->__pyx_n_u_null_placement_2};
    __pyx_mstate_global->__pyx_codeobj_tab[223] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_Q_M_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[223])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2247};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_sort_keys, __pyx_mstate->__pyx_n_u_null_placement_2};
    __pyx_mstate_global->__pyx_codeobj_tab[224] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_1_A_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[224])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[225] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[225])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[226] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[226])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 1, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2270};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_sort_keys, __pyx_mstate->__pyx_n_u_null_placement_2};
    __pyx_mstate_global->__pyx_codeobj_tab[227] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_M_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[227])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2275};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_sort_keys};
    __pyx_mstate_global->__pyx_codeobj_tab[228] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_as2B_CXXY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[228])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[229] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[229])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[230] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[230])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2296};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_k, __pyx_mstate->__pyx_n_u_sort_keys};
    __pyx_mstate_global->__pyx_codeobj_tab[231] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_M_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[231])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2309};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_quantiles, __pyx_mstate->__pyx_n_u_interp, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[232] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_a_A_L_1_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[232])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[233] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[233])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[234] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[234])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 3, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2341};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_q, __pyx_mstate->__pyx_n_u_interpolation, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[235] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_z_9_4z_Q_M__L, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[235])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2349};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_quantiles, __pyx_mstate->__pyx_n_u_delta, __pyx_mstate->__pyx_n_u_buffer_size, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[236] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_q_7_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[236])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[237] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[237])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[238] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[238])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 4, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2374};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_q, __pyx_mstate->__pyx_n_u_delta, __pyx_mstate->__pyx_n_u_buffer_size, __pyx_mstate->__pyx_n_u_skip_nulls, __pyx_mstate->__pyx_n_u_min_count};
    __pyx_mstate_global->__pyx_codeobj_tab[239] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_z_Q_4z_Q_M_WM_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[239])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2389};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_form};
    __pyx_mstate_global->__pyx_codeobj_tab[240] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_a_j_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[240])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[241] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[241])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[242] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[242])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2410};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_form};
    __pyx_mstate_global->__pyx_codeobj_tab[243] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_M_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[243])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2415};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_initializer};
    __pyx_mstate_global->__pyx_codeobj_tab[244] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_s_a_1_q_4z_q_d_1_iq_01_r_A_HF, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[244])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[245] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[245])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[246] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[246])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 1, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2449};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_initializer};
    __pyx_mstate_global->__pyx_codeobj_tab[247] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[247])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2462};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_sort_keys, __pyx_mstate->__pyx_n_u_null_placement_2, __pyx_mstate->__pyx_n_u_tiebreaker};
    __pyx_mstate_global->__pyx_codeobj_tab[248] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_a_1_6aq_5Qa_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[248])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[249] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[249])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[250] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[250])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 2, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2502};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_sort_keys, __pyx_mstate->__pyx_n_u_null_placement_2, __pyx_mstate->__pyx_n_u_tiebreaker};
    __pyx_mstate_global->__pyx_codeobj_tab[251] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_11J_M_5Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[251])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2508};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_sort_keys, __pyx_mstate->__pyx_n_u_null_placement_2};
    __pyx_mstate_global->__pyx_codeobj_tab[252] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_HF_A_5Qa_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[252])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[253] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[253])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[254] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[254])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 1, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2533};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_sort_keys, __pyx_mstate->__pyx_n_u_null_placement_2};
    __pyx_mstate_global->__pyx_codeobj_tab[255] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_1_M_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[255])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2539};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_key_names, __pyx_mstate->__pyx_n_u_unexpected_key_behavior, __pyx_mstate->__pyx_n_u_c_key_names, __pyx_mstate->__pyx_n_u_c_unexpected_key_behavior, __pyx_mstate->__pyx_n_u_k};
    __pyx_mstate_global->__pyx_codeobj_tab[256] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_set_options, __pyx_mstate->__pyx_kp_b_iso88591_A_3a_S_A_45Q_E_z_HF_4q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[256])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[257] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[257])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[258] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[258])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 1, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2577};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_key_names, __pyx_mstate->__pyx_n_u_unexpected_key_behavior};
    __pyx_mstate_global->__pyx_codeobj_tab[259] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_Q_M_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[259])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2631};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_other};
    __pyx_mstate_global->__pyx_codeobj_tab[260] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_equals, __pyx_mstate->__pyx_kp_b_iso88591_A_t5_q_WA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[260])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2649};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_message, __pyx_mstate->__pyx_n_u_expressions};
    __pyx_mstate_global->__pyx_codeobj_tab[261] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_from_substrait, __pyx_mstate->__pyx_kp_b_iso88591_A_d__AXQ_3a_Cq_AQ_3a_Ba_A_t1D_G1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[261])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2678};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_schema, __pyx_mstate->__pyx_n_u_allow_arrow_extensions};
    __pyx_mstate_global->__pyx_codeobj_tab[262] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_to_substrait, __pyx_mstate->__pyx_kp_b_iso88591_QQR_t2_1AWA_HLccd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[262])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2701};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_buffer};
    __pyx_mstate_global->__pyx_codeobj_tab[263] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_deserialize, __pyx_mstate->__pyx_kp_b_iso88591_A_a_Q_DA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[263])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2706};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_buffer};
    __pyx_mstate_global->__pyx_codeobj_tab[264] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_reduce, __pyx_mstate->__pyx_kp_b_iso88591_A_A_1_Q_z, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[264])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2717};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_arguments, __pyx_mstate->__pyx_n_u_options, __pyx_mstate->__pyx_n_u_c_arguments, __pyx_mstate->__pyx_n_u_c_options, __pyx_mstate->__pyx_n_u_argument};
    __pyx_mstate_global->__pyx_codeobj_tab[265] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_call_2, __pyx_mstate->__pyx_kp_b_iso88591_AIJ_L_t_Qj_z_1_z_87_wa_a_2_1_D_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[265])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2784};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[266] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_is_valid, __pyx_mstate->__pyx_kp_b_iso88591_A_z_q_AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[266])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2797};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_nan_is_null, __pyx_mstate->__pyx_n_u_options};
    __pyx_mstate_global->__pyx_codeobj_tab[267] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_is_null, __pyx_mstate->__pyx_kp_b_iso88591_q_Ql_z_q_1G1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[267])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2816};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[268] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_is_nan, __pyx_mstate->__pyx_kp_b_iso88591_A_z_q_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[268])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2829};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_type, __pyx_mstate->__pyx_n_u_safe, __pyx_mstate->__pyx_n_u_options, __pyx_mstate->__pyx_n_u_safe_vars_passed};
    __pyx_mstate_global->__pyx_codeobj_tab[269] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_cast, __pyx_mstate->__pyx_kp_b_iso88591_E_d_wa_E_AQ_83a_a_0_uCq_WAQ_U_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[269])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2863};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_values, __pyx_mstate->__pyx_n_u_options};
    __pyx_mstate_global->__pyx_codeobj_tab[270] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_isin, __pyx_mstate->__pyx_kp_b_iso88591_A_4z_S_aq_1_z_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[270])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2887};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name_or_idx, __pyx_mstate->__pyx_n_u_c_field};
    __pyx_mstate_global->__pyx_codeobj_tab[271] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_field, __pyx_mstate->__pyx_kp_b_iso88591_A_Qm1_U_aq_iq_7_1_U_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[271])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2898};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_names, __pyx_mstate->__pyx_n_u_nested, __pyx_mstate->__pyx_n_u_name_2};
    __pyx_mstate_global->__pyx_codeobj_tab[272] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_nested_field, __pyx_mstate->__pyx_kp_b_iso88591_A_3awc_AQ_has_1_HA_z_j_5_j_gQa_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[272])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2913};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_scalar};
    __pyx_mstate_global->__pyx_codeobj_tab[273] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_scalar_2, __pyx_mstate->__pyx_kp_b_iso88591_A_QgQ_Q_S_q_a_4AV7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[273])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[274] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[274])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[275] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[275])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3017};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_memory_pool, __pyx_mstate->__pyx_n_u_batch_length, __pyx_mstate->__pyx_n_u_c_context, __pyx_mstate->__pyx_n_u_context};
    __pyx_mstate_global->__pyx_codeobj_tab[276] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_get_udf_context, __pyx_mstate->__pyx_kp_b_iso88591_X_AQ_Q_oQa_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[276])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self};
    __pyx_mstate_global->__pyx_codeobj_tab[277] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[277])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state};
    __pyx_mstate_global->__pyx_codeobj_tab[278] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[278])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3058};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_func, __pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_function_doc, __pyx_mstate->__pyx_n_u_in_types, __pyx_mstate->__pyx_n_u_out_type, __pyx_mstate->__pyx_n_u_func_registry};
    __pyx_mstate_global->__pyx_codeobj_tab[279] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_register_scalar_function, __pyx_mstate->__pyx_kp_b_iso88591_V_Gq_1_a_5Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[279])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3139};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_func, __pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_function_doc, __pyx_mstate->__pyx_n_u_in_types, __pyx_mstate->__pyx_n_u_out_type, __pyx_mstate->__pyx_n_u_func_registry};
    __pyx_mstate_global->__pyx_codeobj_tab[280] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_register_vector_function, __pyx_mstate->__pyx_kp_b_iso88591_N_Gq_1_a_5Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[280])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3216};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_func, __pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_function_doc, __pyx_mstate->__pyx_n_u_in_types, __pyx_mstate->__pyx_n_u_out_type, __pyx_mstate->__pyx_n_u_func_registry};
    __pyx_mstate_global->__pyx_codeobj_tab[281] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_register_aggregate_function, __pyx_mstate->__pyx_kp_b_iso88591_f_J_1_a_5Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[281])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3305};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_func, __pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_function_doc, __pyx_mstate->__pyx_n_u_in_types, __pyx_mstate->__pyx_n_u_out_type, __pyx_mstate->__pyx_n_u_func_registry, __pyx_mstate->__pyx_n_u_c_schema, __pyx_mstate->__pyx_n_u_c_type};
    __pyx_mstate_global->__pyx_codeobj_tab[282] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_register_tabular_function, __pyx_mstate->__pyx_kp_b_iso88591_J_z_A_K_AV9T_H_1_a_5Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[282])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3353};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_register_func, __pyx_mstate->__pyx_n_u_func, __pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_function_doc, __pyx_mstate->__pyx_n_u_in_types, __pyx_mstate->__pyx_n_u_out_type, __pyx_mstate->__pyx_n_u_func_registry, __pyx_mstate->__pyx_n_u_c_register_func, __pyx_mstate->__pyx_n_u_c_func_name, __pyx_mstate->__pyx_n_u_c_arity, __pyx_mstate->__pyx_n_u_c_func_doc, __pyx_mstate->__pyx_n_u_c_in_types, __pyx_mstate->__pyx_n_u_c_function, __pyx_mstate->__pyx_n_u_c_out_type, __pyx_mstate->__pyx_n_u_c_options, __pyx_mstate->__pyx_n_u_c_func_registry, __pyx_mstate->__pyx_n_u_func_spec, __pyx_mstate->__pyx_n_u_num_args, __pyx_mstate->__pyx_n_u_in_type};
    __pyx_mstate_global->__pyx_codeobj_tab[283] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_register_user_defined_function, __pyx_mstate->__pyx_kp_b_iso88591_L_xq_iq_aq_z_A_Kxwa_j_AQ_A_HE_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[283])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3444};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_func_registry, __pyx_mstate->__pyx_n_u_c_func_name, __pyx_mstate->__pyx_n_u_c_args, __pyx_mstate->__pyx_n_u_c_func_registry, __pyx_mstate->__pyx_n_u_c_reader, __pyx_mstate->__pyx_n_u_reader};
    __pyx_mstate_global->__pyx_codeobj_tab[284] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyarrow__compute_pyx, __pyx_mstate->__pyx_n_u_call_tabular_function, __pyx_mstate->__pyx_kp_b_iso88591_A_S_1_uCq_q_avQa_5Q_haq_A_M_QfI, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[284])) goto bad;
  }
  {
    const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4};
    PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_pyx_type, __pyx_mstate->__pyx_n_u_pyx_checksum, __pyx_mstate->__pyx_n_u_pyx_state, __pyx_mstate->__pyx_n_u_pyx_result};
    __pyx_mstate_global->__pyx_codeobj_tab[285] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_tree_fragment, __pyx_mstate->__pyx_n_u_pyx_unpickle_Kernel, __pyx_mstate->__pyx_kp_b_iso88591_q_0_kQR_6_7_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[285])) goto bad;
  }
  Py_DECREF(tuple_dedup_map);
  return 0;
  bad:
  Py_DECREF(tuple_dedup_map);
  return -1;
}
/* #### Code section: init_globals ### */

static int __Pyx_InitGlobals(void) {
  /* PythonCompatibility.init */
  if (likely(__Pyx_init_co_variables() == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* AssertionsEnabled.init */
  if (likely(__Pyx_init_assertions_enabled() == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* CommonTypesMetaclass.init */
  if (likely(__pyx_CommonTypesMetaclass_init(__pyx_m) == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* CachedMethodType.init */
  #if CYTHON_COMPILING_IN_LIMITED_API
  {
      PyObject *typesModule=NULL;
      typesModule = PyImport_ImportModule("types");
      if (typesModule) {
          __pyx_mstate_global->__Pyx_CachedMethodType = PyObject_GetAttrString(typesModule, "MethodType");
          Py_DECREF(typesModule);
      }
  } // error handling follows
  #endif
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  /* CythonFunctionShared.init */
  if (likely(__pyx_CyFunction_init(__pyx_m) == 0)); else
  
  if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)

  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: cleanup_globals ### */
/* #### Code section: cleanup_module ### */
/* #### Code section: main_method ### */
/* #### Code section: utility_code_pragmas ### */
#ifdef _MSC_VER
#pragma warning( push )
/* Warning 4127: conditional expression is constant
 * Cython uses constant conditional expressions to allow in inline functions to be optimized at
 * compile-time, so this warning is not useful
 */
#pragma warning( disable : 4127 )
#endif



/* #### Code section: utility_code_def ### */

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyErrExceptionMatches (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    int result;
    PyObject *exc_type;
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *current_exception = tstate->current_exception;
    if (unlikely(!current_exception)) return 0;
    exc_type = (PyObject*) Py_TYPE(current_exception);
    if (exc_type == err) return 1;
#else
    exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
#endif
    #if CYTHON_AVOID_BORROWED_REFS
    Py_INCREF(exc_type);
    #endif
    if (unlikely(PyTuple_Check(err))) {
        result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    } else {
        result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
    }
    #if CYTHON_AVOID_BORROWED_REFS
    Py_DECREF(exc_type);
    #endif
    return result;
}
#endif

/* PyErrFetchRestore (used by PyObjectGetAttrStrNoError) */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *tmp_value;
    assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
    if (value) {
        #if CYTHON_COMPILING_IN_CPYTHON
        if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
        #endif
            PyException_SetTraceback(value, tb);
    }
    tmp_value = tstate->current_exception;
    tstate->current_exception = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
#else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#endif
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject* exc_value;
    exc_value = tstate->current_exception;
    tstate->current_exception = 0;
    *value = exc_value;
    *type = NULL;
    *tb = NULL;
    if (exc_value) {
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        #if CYTHON_COMPILING_IN_CPYTHON
        *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
        Py_XINCREF(*tb);
        #else
        *tb = PyException_GetTraceback(exc_value);
        #endif
    }
#else
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#endif
}
#endif

/* PyObjectGetAttrStr (used by PyObjectGetAttrStrNoError) */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* PyObjectGetAttrStrNoError (used by GetBuiltinName) */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        __Pyx_PyErr_Clear();
}
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
    PyObject *result;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
    return result;
#else
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
        return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
    }
#endif
    result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
    if (unlikely(!result)) {
        __Pyx_PyObject_GetAttrStr_ClearAttributeError();
    }
    return result;
#endif
}

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_mstate_global->__pyx_b, name);
    if (unlikely(!result) && !PyErr_Occurred()) {
        PyErr_Format(PyExc_NameError,
            "name '%U' is not defined", name);
    }
    return result;
}

/* ExtTypeTest */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    __Pyx_TypeName obj_type_name;
    __Pyx_TypeName type_name;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(__Pyx_TypeCheck(obj, type)))
        return 1;
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    type_name = __Pyx_PyType_GetFullyQualifiedName(type);
    PyErr_Format(PyExc_TypeError,
                 "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME,
                 obj_type_name, type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    __Pyx_DECREF_TypeName(type_name);
    return 0;
}

/* TupleAndListFromArray (used by fastcall) */
#if !CYTHON_COMPILING_IN_CPYTHON && CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject *
__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    Py_ssize_t i;
    if (n <= 0) {
        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
    }
    res = PyTuple_New(n);
    if (unlikely(res == NULL)) return NULL;
    for (i = 0; i < n; i++) {
        if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < (0))) {
            Py_DECREF(res);
            return NULL;
        }
        Py_INCREF(src[i]);
    }
    return res;
}
#elif CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
    PyObject *v;
    Py_ssize_t i;
    for (i = 0; i < length; i++) {
        v = dest[i] = src[i];
        Py_INCREF(v);
    }
}
static CYTHON_INLINE PyObject *
__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        return __Pyx_NewRef(__pyx_mstate_global->__pyx_empty_tuple);
    }
    res = PyTuple_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
    return res;
}
static CYTHON_INLINE PyObject *
__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        return PyList_New(0);
    }
    res = PyList_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
    return res;
}
#endif

/* BytesEquals (used by UnicodeEquals) */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL ||\
        !(CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS)
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals (used by fastcall) */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_GRAAL
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length, length2;
        int kind;
        void *data1, *data2;
        #if !CYTHON_COMPILING_IN_LIMITED_API
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        #endif
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(length < 0)) return -1;
        #endif
        length2 = __Pyx_PyUnicode_GET_LENGTH(s2);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(length2 < 0)) return -1;
        #endif
        if (length != length2) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    return (equals == Py_EQ);
return_ne:
    return (equals == Py_NE);
#endif
}

/* fastcall */
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
{
    Py_ssize_t i, n = __Pyx_PyTuple_GET_SIZE(kwnames);
    #if !CYTHON_ASSUME_SAFE_SIZE
    if (unlikely(n == -1)) return NULL;
    #endif
    for (i = 0; i < n; i++)
    {
        PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!namei)) return NULL;
        #endif
        if (s == namei) return kwvalues[i];
    }
    for (i = 0; i < n; i++)
    {
        PyObject *namei = __Pyx_PyTuple_GET_ITEM(kwnames, i);
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!namei)) return NULL;
        #endif
        int eq = __Pyx_PyUnicode_Equals(s, namei, Py_EQ);
        if (unlikely(eq != 0)) {
            if (unlikely(eq < 0)) return NULL;
            return kwvalues[i];
        }
    }
    return NULL;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API
CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
    Py_ssize_t i, nkwargs;
    PyObject *dict;
#if !CYTHON_ASSUME_SAFE_SIZE
    nkwargs = PyTuple_Size(kwnames);
    if (unlikely(nkwargs < 0)) return NULL;
#else
    nkwargs = PyTuple_GET_SIZE(kwnames);
#endif
    dict = PyDict_New();
    if (unlikely(!dict))
        return NULL;
    for (i=0; i<nkwargs; i++) {
#if !CYTHON_ASSUME_SAFE_MACROS
        PyObject *key = PyTuple_GetItem(kwnames, i);
        if (!key) goto bad;
#else
        PyObject *key = PyTuple_GET_ITEM(kwnames, i);
#endif
        if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
            goto bad;
    }
    return dict;
bad:
    Py_DECREF(dict);
    return NULL;
}
#endif
#endif

/* PyDictVersioning (used by GetModuleGlobalName) */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(!__pyx_m)) {
        if (!PyErr_Occurred())
            PyErr_SetNone(PyExc_NameError);
        return NULL;
    }
    result = PyObject_GetAttr(__pyx_m, name);
    if (likely(result)) {
        return result;
    }
    PyErr_Clear();
#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS
    if (unlikely(__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, name, &result) == -1)) PyErr_Clear();
    __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return result;
    }
#else
    result = _PyDict_GetItem_KnownHash(__pyx_mstate_global->__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* HasAttr (used by ImportImpl) */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
    PyObject *r;
    if (unlikely(!PyUnicode_Check(n))) {
        PyErr_SetString(PyExc_TypeError,
                        "hasattr(): attribute name must be string");
        return -1;
    }
    r = __Pyx_PyObject_GetAttrStrNoError(o, n);
    if (!r) {
        return (unlikely(PyErr_Occurred())) ? -1 : 0;
    } else {
        Py_DECREF(r);
        return 1;
    }
}
#endif

/* PyObjectCall (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = Py_TYPE(func)->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallMethO (used by PyObjectFastCall) */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
    self = __Pyx_CyOrPyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectFastCall (used by PyObjectCallOneArg) */
#if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API
static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject * const*args, size_t nargs, PyObject *kwargs) {
    PyObject *argstuple;
    PyObject *result = 0;
    size_t i;
    argstuple = PyTuple_New((Py_ssize_t)nargs);
    if (unlikely(!argstuple)) return NULL;
    for (i = 0; i < nargs; i++) {
        Py_INCREF(args[i]);
        if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) != (0)) goto bad;
    }
    result = __Pyx_PyObject_Call(func, argstuple, kwargs);
  bad:
    Py_DECREF(argstuple);
    return result;
}
#endif
#if CYTHON_VECTORCALL && !CYTHON_COMPILING_IN_LIMITED_API
  #if PY_VERSION_HEX < 0x03090000
    #define __Pyx_PyVectorcall_Function(callable) _PyVectorcall_Function(callable)
  #elif CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE vectorcallfunc __Pyx_PyVectorcall_Function(PyObject *callable) {
    PyTypeObject *tp = Py_TYPE(callable);
    #if defined(__Pyx_CyFunction_USED)
    if (__Pyx_CyFunction_CheckExact(callable)) {
        return __Pyx_CyFunction_func_vectorcall(callable);
    }
    #endif
    if (!PyType_HasFeature(tp, Py_TPFLAGS_HAVE_VECTORCALL)) {
        return NULL;
    }
    assert(PyCallable_Check(callable));
    Py_ssize_t offset = tp->tp_vectorcall_offset;
    assert(offset > 0);
    vectorcallfunc ptr;
    memcpy(&ptr, (char *) callable + offset, sizeof(ptr));
    return ptr;
}
  #else
    #define __Pyx_PyVectorcall_Function(callable) PyVectorcall_Function(callable)
  #endif
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject *const *args, size_t _nargs, PyObject *kwargs) {
    Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs);
#if CYTHON_COMPILING_IN_CPYTHON
    if (nargs == 0 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
            return __Pyx_PyObject_CallMethO(func, NULL);
    }
    else if (nargs == 1 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
            return __Pyx_PyObject_CallMethO(func, args[0]);
    }
#endif
    if (kwargs == NULL) {
        #if CYTHON_VECTORCALL
          #if CYTHON_COMPILING_IN_LIMITED_API
            return PyObject_Vectorcall(func, args, _nargs, NULL);
          #else
            vectorcallfunc f = __Pyx_PyVectorcall_Function(func);
            if (f) {
                return f(func, args, _nargs, NULL);
            }
          #endif
        #endif
    }
    if (nargs == 0) {
        return __Pyx_PyObject_Call(func, __pyx_mstate_global->__pyx_empty_tuple, kwargs);
    }
    #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs);
    #else
    return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
    #endif
}

/* PyObjectCallOneArg (used by ImportImpl) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *args[2] = {NULL, arg};
    return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* ImportImpl (used by Import) */
static int __Pyx__Import_GetModule(PyObject *qualname, PyObject **module) {
    PyObject *imported_module = PyImport_GetModule(qualname);
    if (unlikely(!imported_module)) {
        *module = NULL;
        if (PyErr_Occurred()) {
            return -1;
        }
        return 0;
    }
    *module = imported_module;
    return 1;
}
static int __Pyx__Import_Lookup(PyObject *qualname, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject **module) {
    PyObject *imported_module;
    PyObject *top_level_package_name;
    Py_ssize_t i;
    int status, module_found;
    Py_ssize_t dot_index;
    module_found = __Pyx__Import_GetModule(qualname, &imported_module);
    if (unlikely(!module_found || module_found == -1)) {
        *module = NULL;
        return module_found;
    }
    if (imported_names) {
        for (i = 0; i < len_imported_names; i++) {
            PyObject *imported_name = imported_names[i];
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
            int has_imported_attribute = PyObject_HasAttr(imported_module, imported_name);
#else
            int has_imported_attribute = PyObject_HasAttrWithError(imported_module, imported_name);
            if (unlikely(has_imported_attribute == -1)) goto error;
#endif
            if (!has_imported_attribute) {
                goto not_found;
            }
        }
        *module = imported_module;
        return 1;
    }
    dot_index = PyUnicode_FindChar(qualname, '.', 0, PY_SSIZE_T_MAX, 1);
    if (dot_index == -1) {
        *module = imported_module;
        return 1;
    }
    if (unlikely(dot_index == -2)) goto error;
    top_level_package_name = PyUnicode_Substring(qualname, 0, dot_index);
    if (unlikely(!top_level_package_name)) goto error;
    Py_DECREF(imported_module);
    status = __Pyx__Import_GetModule(top_level_package_name, module);
    Py_DECREF(top_level_package_name);
    return status;
error:
    Py_DECREF(imported_module);
    *module = NULL;
    return -1;
not_found:
    Py_DECREF(imported_module);
    *module = NULL;
    return 0;
}
static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level) {
    PyObject *module = 0;
    PyObject *empty_dict = 0;
    PyObject *from_list = 0;
    int module_found;
    if (!qualname) {
        qualname = name;
    }
    module_found = __Pyx__Import_Lookup(qualname, imported_names, len_imported_names, &module);
    if (likely(module_found == 1)) {
        return module;
    } else if (unlikely(module_found == -1)) {
        return NULL;
    }
    empty_dict = PyDict_New();
    if (unlikely(!empty_dict))
        goto bad;
    if (imported_names) {
#if CYTHON_COMPILING_IN_CPYTHON
        from_list = __Pyx_PyList_FromArray(imported_names, len_imported_names);
        if (unlikely(!from_list))
            goto bad;
#else
        from_list = PyList_New(len_imported_names);
        if (unlikely(!from_list)) goto bad;
        for (Py_ssize_t i=0; i<len_imported_names; ++i) {
            if (PyList_SetItem(from_list, i, __Pyx_NewRef(imported_names[i])) < 0) goto bad;
        }
#endif
    }
    if (level == -1) {
        const char* package_sep = strchr(__Pyx_MODULE_NAME, '.');
        if (package_sep != (0)) {
            module = PyImport_ImportModuleLevelObject(
                name, moddict, empty_dict, from_list, 1);
            if (unlikely(!module)) {
                if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))
                    goto bad;
                PyErr_Clear();
            }
        }
        level = 0;
    }
    if (!module) {
        module = PyImport_ImportModuleLevelObject(
            name, moddict, empty_dict, from_list, level);
    }
bad:
    Py_XDECREF(from_list);
    Py_XDECREF(empty_dict);
    return module;
}

/* Import */
static PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level) {
    return __Pyx__Import(name, imported_names, len_imported_names, qualname, __pyx_mstate_global->__pyx_d, level);
}

/* ImportFrom */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        const char* module_name_str = 0;
        PyObject* module_name = 0;
        PyObject* module_dot = 0;
        PyObject* full_name = 0;
        PyErr_Clear();
        module_name_str = PyModule_GetName(module);
        if (unlikely(!module_name_str)) { goto modbad; }
        module_name = PyUnicode_FromString(module_name_str);
        if (unlikely(!module_name)) { goto modbad; }
        module_dot = PyUnicode_Concat(module_name, __pyx_mstate_global->__pyx_kp_u_);
        if (unlikely(!module_dot)) { goto modbad; }
        full_name = PyUnicode_Concat(module_dot, name);
        if (unlikely(!full_name)) { goto modbad; }
        #if (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400) ||\
                CYTHON_COMPILING_IN_GRAAL
        {
            PyObject *modules = PyImport_GetModuleDict();
            if (unlikely(!modules))
                goto modbad;
            value = PyObject_GetItem(modules, full_name);
        }
        #else
        value = PyImport_GetModule(full_name);
        #endif
      modbad:
        Py_XDECREF(full_name);
        Py_XDECREF(module_dot);
        Py_XDECREF(module_name);
    }
    if (unlikely(!value)) {
        PyErr_Format(PyExc_ImportError, "cannot import name %S", name);
    }
    return value;
}

/* GetTopmostException (used by SaveResetException) */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    PyObject *exc_value = exc_info->exc_value;
    if (exc_value == NULL || exc_value == Py_None) {
        *value = NULL;
        *type = NULL;
        *tb = NULL;
    } else {
        *value = exc_value;
        Py_INCREF(*value);
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        *tb = PyException_GetTraceback(exc_value);
    }
  #elif CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #endif
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    PyObject *tmp_value = exc_info->exc_value;
    exc_info->exc_value = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
  #else
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
  #endif
}
#endif

/* GetException */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
#endif
{
    PyObject *local_type = NULL, *local_value, *local_tb = NULL;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if PY_VERSION_HEX >= 0x030C0000
    local_value = tstate->current_exception;
    tstate->current_exception = 0;
  #else
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
  #endif
#elif __PYX_LIMITED_VERSION_HEX > 0x030C0000
    local_value = PyErr_GetRaisedException();
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
#if __PYX_LIMITED_VERSION_HEX > 0x030C0000
    if (likely(local_value)) {
        local_type = (PyObject*) Py_TYPE(local_value);
        Py_INCREF(local_type);
        local_tb = PyException_GetTraceback(local_value);
    }
#else
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
#endif // __PYX_LIMITED_VERSION_HEX > 0x030C0000
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    #if CYTHON_USE_EXC_INFO_STACK
    {
        _PyErr_StackItem *exc_info = tstate->exc_info;
      #if PY_VERSION_HEX >= 0x030B00a4
        tmp_value = exc_info->exc_value;
        exc_info->exc_value = local_value;
        tmp_type = NULL;
        tmp_tb = NULL;
        Py_XDECREF(local_type);
        Py_XDECREF(local_tb);
      #else
        tmp_type = exc_info->exc_type;
        tmp_value = exc_info->exc_value;
        tmp_tb = exc_info->exc_traceback;
        exc_info->exc_type = local_type;
        exc_info->exc_value = local_value;
        exc_info->exc_traceback = local_tb;
      #endif
    }
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#elif __PYX_LIMITED_VERSION_HEX >= 0x030b0000
    PyErr_SetHandledException(local_value);
    Py_XDECREF(local_value);
    Py_XDECREF(local_type);
    Py_XDECREF(local_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
#if __PYX_LIMITED_VERSION_HEX <= 0x030C0000
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
#endif
}

/* RaiseException */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if PY_VERSION_HEX >= 0x030C00A6
        PyException_SetTraceback(value, tb);
#elif CYTHON_FAST_THREAD_STATE
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#else
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}

/* UnpackUnboundCMethod (used by CallUnboundCMethod0) */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {
    PyObject *result;
    PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));
    if (unlikely(!selfless_args)) return NULL;
    result = PyObject_Call(method, selfless_args, kwargs);
    Py_DECREF(selfless_args);
    return result;
}
#elif CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03090000
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject **args, Py_ssize_t nargs, PyObject *kwnames) {
        return _PyObject_Vectorcall
            (method, args ? args+1 : NULL, nargs ? nargs-1 : 0, kwnames);
}
#else
static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) {
    return
#if PY_VERSION_HEX < 0x03090000
    _PyObject_Vectorcall
#else
    PyObject_Vectorcall
#endif
        (method, args ? args+1 : NULL, nargs ? (size_t) nargs-1 : 0, kwnames);
}
#endif
static PyMethodDef __Pyx_UnboundCMethod_Def = {
     "CythonUnboundCMethod",
     __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000
     METH_VARARGS | METH_KEYWORDS,
#else
     METH_FASTCALL | METH_KEYWORDS,
#endif
     NULL
};
static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
    PyObject *method, *result=NULL;
    method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
    if (unlikely(!method))
        return -1;
    result = method;
#if CYTHON_COMPILING_IN_CPYTHON
    if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
    {
        PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
        target->func = descr->d_method->ml_meth;
        target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
    } else
#endif
#if CYTHON_COMPILING_IN_PYPY
#else
    if (PyCFunction_Check(method))
#endif
    {
        PyObject *self;
        int self_found;
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        self = PyObject_GetAttrString(method, "__self__");
        if (!self) {
            PyErr_Clear();
        }
#else
        self = PyCFunction_GET_SELF(method);
#endif
        self_found = (self && self != Py_None);
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
        Py_XDECREF(self);
#endif
        if (self_found) {
            PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);
            if (unlikely(!unbound_method)) return -1;
            Py_DECREF(method);
            result = unbound_method;
        }
    }
#if !CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    if (unlikely(target->method)) {
        Py_DECREF(result);
    } else
#endif
    target->method = result;
    return 0;
}

/* CallUnboundCMethod0 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
    if (likely(was_initialized == 2 && cfunc->func)) {
        if (likely(cfunc->flag == METH_NOARGS))
            return __Pyx_CallCFunction(cfunc, self, NULL);
        if (likely(cfunc->flag == METH_FASTCALL))
            return __Pyx_CallCFunctionFast(cfunc, self, NULL, 0);
        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, NULL, 0, NULL);
        if (likely(cfunc->flag == (METH_VARARGS | METH_KEYWORDS)))
            return __Pyx_CallCFunctionWithKeywords(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple, NULL);
        if (cfunc->flag == METH_VARARGS)
            return __Pyx_CallCFunction(cfunc, self, __pyx_mstate_global->__pyx_empty_tuple);
        return __Pyx__CallUnboundCMethod0(cfunc, self);
    }
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    else if (unlikely(was_initialized == 1)) {
        __Pyx_CachedCFunction tmp_cfunc = {
#ifndef __cplusplus
            0
#endif
        };
        tmp_cfunc.type = cfunc->type;
        tmp_cfunc.method_name = cfunc->method_name;
        return __Pyx__CallUnboundCMethod0(&tmp_cfunc, self);
    }
#endif
    PyObject *result = __Pyx__CallUnboundCMethod0(cfunc, self);
    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
    return result;
}
#endif
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    PyObject *result;
    if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
    result = __Pyx_PyObject_CallOneArg(cfunc->method, self);
    return result;
}

/* py_dict_items (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_items, d);
}

/* py_dict_values (used by OwnedDictNext) */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
    return __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_values, d);
}

/* OwnedDictNext (used by ParseKeywordsImpl) */
#if CYTHON_AVOID_BORROWED_REFS
static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue) {
    PyObject *next = NULL;
    if (!*ppos) {
        if (pvalue) {
            PyObject *dictview = pkey ? __Pyx_PyDict_Items(p) : __Pyx_PyDict_Values(p);
            if (unlikely(!dictview)) goto bad;
            *ppos = PyObject_GetIter(dictview);
            Py_DECREF(dictview);
        } else {
            *ppos = PyObject_GetIter(p);
        }
        if (unlikely(!*ppos)) goto bad;
    }
    next = PyIter_Next(*ppos);
    if (!next) {
        if (PyErr_Occurred()) goto bad;
        return 0;
    }
    if (pkey && pvalue) {
        *pkey = __Pyx_PySequence_ITEM(next, 0);
        if (unlikely(*pkey)) goto bad;
        *pvalue = __Pyx_PySequence_ITEM(next, 1);
        if (unlikely(*pvalue)) goto bad;
        Py_DECREF(next);
    } else if (pkey) {
        *pkey = next;
    } else {
        assert(pvalue);
        *pvalue = next;
    }
    return 1;
  bad:
    Py_XDECREF(next);
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
    PyErr_FormatUnraisable("Exception ignored in __Pyx_PyDict_NextRef");
#else
    PyErr_WriteUnraisable(__pyx_mstate_global->__pyx_n_u_Pyx_PyDict_NextRef);
#endif
    if (pkey) *pkey = NULL;
    if (pvalue) *pvalue = NULL;
    return 0;
}
#else // !CYTHON_AVOID_BORROWED_REFS
static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue) {
    int result = PyDict_Next(p, ppos, pkey, pvalue);
    if (likely(result == 1)) {
        if (pkey) Py_INCREF(*pkey);
        if (pvalue) Py_INCREF(*pvalue);
    }
    return result;
}
#endif

/* RaiseDoubleKeywords (used by ParseKeywordsImpl) */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
}

/* CallUnboundCMethod2 */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {
    int was_initialized = __Pyx_CachedCFunction_GetAndSetInitializing(cfunc);
    if (likely(was_initialized == 2 && cfunc->func)) {
        PyObject *args[2] = {arg1, arg2};
        if (cfunc->flag == METH_FASTCALL) {
            return __Pyx_CallCFunctionFast(cfunc, self, args, 2);
        }
        if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
            return __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, 2, NULL);
    }
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    else if (unlikely(was_initialized == 1)) {
        __Pyx_CachedCFunction tmp_cfunc = {
#ifndef __cplusplus
            0
#endif
        };
        tmp_cfunc.type = cfunc->type;
        tmp_cfunc.method_name = cfunc->method_name;
        return __Pyx__CallUnboundCMethod2(&tmp_cfunc, self, arg1, arg2);
    }
#endif
    PyObject *result = __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);
    __Pyx_CachedCFunction_SetFinishedInitializing(cfunc);
    return result;
}
#endif
static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){
    if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_COMPILING_IN_CPYTHON
    if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
        PyObject *result = NULL;
        PyObject *args = PyTuple_New(2);
        if (unlikely(!args)) return NULL;
        Py_INCREF(arg1);
        PyTuple_SET_ITEM(args, 0, arg1);
        Py_INCREF(arg2);
        PyTuple_SET_ITEM(args, 1, arg2);
        if (cfunc->flag & METH_KEYWORDS)
            result = __Pyx_CallCFunctionWithKeywords(cfunc, self, args, NULL);
        else
            result = __Pyx_CallCFunction(cfunc, self, args);
        Py_DECREF(args);
        return result;
    }
#endif
    {
        PyObject *args[4] = {NULL, self, arg1, arg2};
        return __Pyx_PyObject_FastCall(cfunc->method, args+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
    }
}

/* ParseKeywordsImpl (used by ParseKeywords) */
static int __Pyx_ValidateDuplicatePosArgs(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    const char* function_name)
{
    PyObject ** const *name = argnames;
    while (name != first_kw_arg) {
        PyObject *key = **name;
        int found = PyDict_Contains(kwds, key);
        if (unlikely(found)) {
            if (found == 1) __Pyx_RaiseDoubleKeywordsError(function_name, key);
            goto bad;
        }
        name++;
    }
    return 0;
bad:
    return -1;
}
#if CYTHON_USE_UNICODE_INTERNALS
static CYTHON_INLINE int __Pyx_UnicodeKeywordsEqual(PyObject *s1, PyObject *s2) {
    int kind;
    Py_ssize_t len = PyUnicode_GET_LENGTH(s1);
    if (len != PyUnicode_GET_LENGTH(s2)) return 0;
    kind = PyUnicode_KIND(s1);
    if (kind != PyUnicode_KIND(s2)) return 0;
    const void *data1 = PyUnicode_DATA(s1);
    const void *data2 = PyUnicode_DATA(s2);
    return (memcmp(data1, data2, (size_t) len * (size_t) kind) == 0);
}
#endif
static int __Pyx_MatchKeywordArg_str(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    PyObject ** const *name;
    #if CYTHON_USE_UNICODE_INTERNALS
    Py_hash_t key_hash = ((PyASCIIObject*)key)->hash;
    if (unlikely(key_hash == -1)) {
        key_hash = PyObject_Hash(key);
        if (unlikely(key_hash == -1))
            goto bad;
    }
    #endif
    name = first_kw_arg;
    while (*name) {
        PyObject *name_str = **name;
        #if CYTHON_USE_UNICODE_INTERNALS
        if (key_hash == ((PyASCIIObject*)name_str)->hash && __Pyx_UnicodeKeywordsEqual(name_str, key)) {
            *index_found = (size_t) (name - argnames);
            return 1;
        }
        #else
        #if CYTHON_ASSUME_SAFE_SIZE
        if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
        #endif
        {
            int cmp = PyUnicode_Compare(name_str, key);
            if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
            if (cmp == 0) {
                *index_found = (size_t) (name - argnames);
                return 1;
            }
        }
        #endif
        name++;
    }
    name = argnames;
    while (name != first_kw_arg) {
        PyObject *name_str = **name;
        #if CYTHON_USE_UNICODE_INTERNALS
        if (unlikely(key_hash == ((PyASCIIObject*)name_str)->hash)) {
            if (__Pyx_UnicodeKeywordsEqual(name_str, key))
                goto arg_passed_twice;
        }
        #else
        #if CYTHON_ASSUME_SAFE_SIZE
        if (PyUnicode_GET_LENGTH(name_str) == PyUnicode_GET_LENGTH(key))
        #endif
        {
            if (unlikely(name_str == key)) goto arg_passed_twice;
            int cmp = PyUnicode_Compare(name_str, key);
            if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
            if (cmp == 0) goto arg_passed_twice;
        }
        #endif
        name++;
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
bad:
    return -1;
}
static int __Pyx_MatchKeywordArg_nostr(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    PyObject ** const *name;
    if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type;
    name = first_kw_arg;
    while (*name) {
        int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
        if (cmp == 1) {
            *index_found = (size_t) (name - argnames);
            return 1;
        }
        if (unlikely(cmp == -1)) goto bad;
        name++;
    }
    name = argnames;
    while (name != first_kw_arg) {
        int cmp = PyObject_RichCompareBool(**name, key, Py_EQ);
        if (unlikely(cmp != 0)) {
            if (cmp == 1) goto arg_passed_twice;
            else goto bad;
        }
        name++;
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
bad:
    return -1;
}
static CYTHON_INLINE int __Pyx_MatchKeywordArg(
    PyObject *key,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    size_t *index_found,
    const char *function_name)
{
    return likely(PyUnicode_CheckExact(key)) ?
        __Pyx_MatchKeywordArg_str(key, argnames, first_kw_arg, index_found, function_name) :
        __Pyx_MatchKeywordArg_nostr(key, argnames, first_kw_arg, index_found, function_name);
}
static void __Pyx_RejectUnknownKeyword(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject ** const *first_kw_arg,
    const char *function_name)
{
    #if CYTHON_AVOID_BORROWED_REFS
    PyObject *pos = NULL;
    #else
    Py_ssize_t pos = 0;
    #endif
    PyObject *key = NULL;
    __Pyx_BEGIN_CRITICAL_SECTION(kwds);
    while (
        #if CYTHON_AVOID_BORROWED_REFS
        __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL)
        #else
        PyDict_Next(kwds, &pos, &key, NULL)
        #endif
    ) {
        PyObject** const *name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (!*name) {
            size_t index_found = 0;
            int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
            if (cmp != 1) {
                if (cmp == 0) {
                    PyErr_Format(PyExc_TypeError,
                        "%s() got an unexpected keyword argument '%U'",
                        function_name, key);
                }
                #if CYTHON_AVOID_BORROWED_REFS
                Py_DECREF(key);
                #endif
                break;
            }
        }
        #if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(key);
        #endif
    }
    __Pyx_END_CRITICAL_SECTION();
    #if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(pos);
    #endif
    assert(PyErr_Occurred());
}
static int __Pyx_ParseKeywordDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    PyObject** const *name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    Py_ssize_t extracted = 0;
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
    if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
#endif
    name = first_kw_arg;
    while (*name && num_kwargs > extracted) {
        PyObject * key = **name;
        PyObject *value;
        int found = 0;
        #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
        found = PyDict_GetItemRef(kwds, key, &value);
        #else
        value = PyDict_GetItemWithError(kwds, key);
        if (value) {
            Py_INCREF(value);
            found = 1;
        } else {
            if (unlikely(PyErr_Occurred())) goto bad;
        }
        #endif
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
            extracted++;
        }
        name++;
    }
    if (num_kwargs > extracted) {
        if (ignore_unknown_kwargs) {
            if (unlikely(__Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name) == -1))
                goto bad;
        } else {
            __Pyx_RejectUnknownKeyword(kwds, argnames, first_kw_arg, function_name);
            goto bad;
        }
    }
    return 0;
bad:
    return -1;
}
static int __Pyx_ParseKeywordDictToDict(
    PyObject *kwds,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject** const *name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    Py_ssize_t len;
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
    if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return -1;
#endif
    if (PyDict_Update(kwds2, kwds) < 0) goto bad;
    name = first_kw_arg;
    while (*name) {
        PyObject *key = **name;
        PyObject *value;
#if !CYTHON_COMPILING_IN_LIMITED_API && (PY_VERSION_HEX >= 0x030d00A2 || defined(PyDict_Pop))
        int found = PyDict_Pop(kwds2, key, &value);
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
        }
#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000
        int found = PyDict_GetItemRef(kwds2, key, &value);
        if (found) {
            if (unlikely(found < 0)) goto bad;
            values[name-argnames] = value;
            if (unlikely(PyDict_DelItem(kwds2, key) < 0)) goto bad;
        }
#else
    #if CYTHON_COMPILING_IN_CPYTHON
        value = _PyDict_Pop(kwds2, key, kwds2);
    #else
        value = __Pyx_CallUnboundCMethod2(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_pop, kwds2, key, kwds2);
    #endif
        if (value == kwds2) {
            Py_DECREF(value);
        } else {
            if (unlikely(!value)) goto bad;
            values[name-argnames] = value;
        }
#endif
        name++;
    }
    len = PyDict_Size(kwds2);
    if (len > 0) {
        return __Pyx_ValidateDuplicatePosArgs(kwds, argnames, first_kw_arg, function_name);
    } else if (unlikely(len == -1)) {
        goto bad;
    }
    return 0;
bad:
    return -1;
}
static int __Pyx_ParseKeywordsTuple(
    PyObject *kwds,
    PyObject * const *kwvalues,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    PyObject *key = NULL;
    PyObject** const * name;
    PyObject** const *first_kw_arg = argnames + num_pos_args;
    for (Py_ssize_t pos = 0; pos < num_kwargs; pos++) {
#if CYTHON_AVOID_BORROWED_REFS
        key = __Pyx_PySequence_ITEM(kwds, pos);
#else
        key = __Pyx_PyTuple_GET_ITEM(kwds, pos);
#endif
#if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(!key)) goto bad;
#endif
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            PyObject *value = kwvalues[pos];
            values[name-argnames] = __Pyx_NewRef(value);
        } else {
            size_t index_found = 0;
            int cmp = __Pyx_MatchKeywordArg(key, argnames, first_kw_arg, &index_found, function_name);
            if (cmp == 1) {
                PyObject *value = kwvalues[pos];
                values[index_found] = __Pyx_NewRef(value);
            } else {
                if (unlikely(cmp == -1)) goto bad;
                if (kwds2) {
                    PyObject *value = kwvalues[pos];
                    if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
                } else if (!ignore_unknown_kwargs) {
                    goto invalid_keyword;
                }
            }
        }
        #if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(key);
        key = NULL;
        #endif
    }
    return 0;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    goto bad;
bad:
    #if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(key);
    #endif
    return -1;
}

/* ParseKeywords */
static int __Pyx_ParseKeywords(
    PyObject *kwds,
    PyObject * const *kwvalues,
    PyObject ** const argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    Py_ssize_t num_kwargs,
    const char* function_name,
    int ignore_unknown_kwargs)
{
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds)))
        return __Pyx_ParseKeywordsTuple(kwds, kwvalues, argnames, kwds2, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
    else if (kwds2)
        return __Pyx_ParseKeywordDictToDict(kwds, argnames, kwds2, values, num_pos_args, function_name);
    else
        return __Pyx_ParseKeywordDict(kwds, argnames, values, num_pos_args, num_kwargs, function_name, ignore_unknown_kwargs);
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* UnicodeConcatInPlace */
# if CYTHON_COMPILING_IN_CPYTHON
static int
__Pyx_unicode_modifiable(PyObject *unicode, int unsafe_shared)
{
    if (!__Pyx_IS_UNIQUELY_REFERENCED(unicode, unsafe_shared))
        return 0;
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030F0000
    if (PyUnstable_Unicode_GET_CACHED_HASH(unicode) != -1)
        return 0;
#endif
    if (!PyUnicode_CheckExact(unicode))
        return 0;
    if (PyUnicode_CHECK_INTERNED(unicode))
        return 0;
    return 1;
}
static CYTHON_INLINE PyObject *__Pyx_PyUnicode_ConcatInPlaceImpl(PyObject **p_left, PyObject *right, int unsafe_shared
        #if CYTHON_REFNANNY
        , void* __pyx_refnanny
        #endif
    ) {
    PyObject *left = *p_left;
    Py_ssize_t left_len, right_len, new_len;
    if (unlikely(__Pyx_PyUnicode_READY(left) == -1))
        return NULL;
    if (unlikely(__Pyx_PyUnicode_READY(right) == -1))
        return NULL;
    left_len = PyUnicode_GET_LENGTH(left);
    if (left_len == 0) {
        Py_INCREF(right);
        return right;
    }
    right_len = PyUnicode_GET_LENGTH(right);
    if (right_len == 0) {
        Py_INCREF(left);
        return left;
    }
    if (unlikely(left_len > PY_SSIZE_T_MAX - right_len)) {
        PyErr_SetString(PyExc_OverflowError,
                        "strings are too large to concat");
        return NULL;
    }
    new_len = left_len + right_len;
    if (__Pyx_unicode_modifiable(left, unsafe_shared)
            && PyUnicode_CheckExact(right)
            && PyUnicode_KIND(right) <= PyUnicode_KIND(left)
            && !(PyUnicode_IS_ASCII(left) && !PyUnicode_IS_ASCII(right))) {
        int ret;
        __Pyx_GIVEREF(*p_left);
        ret = PyUnicode_Resize(p_left, new_len);
        __Pyx_GOTREF(*p_left);
        if (unlikely(ret != 0))
            return NULL;
        #if PY_VERSION_HEX >= 0x030d0000
        if (unlikely(PyUnicode_CopyCharacters(*p_left, left_len, right, 0, right_len) < 0)) return NULL;
        #else
        _PyUnicode_FastCopyCharacters(*p_left, left_len, right, 0, right_len);
        #endif
        __Pyx_INCREF(*p_left);
        __Pyx_GIVEREF(*p_left);
        return *p_left;
    } else {
        return __Pyx_PyUnicode_Concat(left, right);
    }
  }
#endif

/* RaiseTooManyValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* IterFinish */
static CYTHON_INLINE int __Pyx_IterFinish(void) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (unlikely(exc_type)) {
        if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return -1;
        __Pyx_PyErr_Clear();
        return 0;
    }
    return 0;
}

/* UnpackItemEndCheck */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    }
    return __Pyx_IterFinish();
}

/* RejectKeywords */
static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds) {
    PyObject *key = NULL;
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds))) {
        key = __Pyx_PySequence_ITEM(kwds, 0);
    } else {
#if CYTHON_AVOID_BORROWED_REFS
        PyObject *pos = NULL;
#else
        Py_ssize_t pos = 0;
#endif
#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments)
        if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return;
#endif
        __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL);
#if CYTHON_AVOID_BORROWED_REFS
        Py_XDECREF(pos);
#endif
    }
    if (likely(key)) {
        PyErr_Format(PyExc_TypeError,
            "%s() got an unexpected keyword argument '%U'",
            function_name, key);
        Py_DECREF(key);
    }
}

/* JoinPyUnicode */
static PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char) {
#if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    PyObject *result_uval;
    int result_ukind, kind_shift;
    Py_ssize_t i, char_pos;
    void *result_udata;
    if (max_char > 1114111) max_char = 1114111;
    result_uval = PyUnicode_New(result_ulength, max_char);
    if (unlikely(!result_uval)) return NULL;
    result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND;
    kind_shift = (result_ukind == PyUnicode_4BYTE_KIND) ? 2 : result_ukind - 1;
    result_udata = PyUnicode_DATA(result_uval);
    assert(kind_shift == 2 || kind_shift == 1 || kind_shift == 0);
    if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - result_ulength < 0))
        goto overflow;
    char_pos = 0;
    for (i=0; i < value_count; i++) {
        int ukind;
        Py_ssize_t ulength;
        void *udata;
        PyObject *uval = values[i];
        #if !CYTHON_COMPILING_IN_LIMITED_API
        if (__Pyx_PyUnicode_READY(uval) == (-1))
            goto bad;
        #endif
        ulength = __Pyx_PyUnicode_GET_LENGTH(uval);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(ulength < 0)) goto bad;
        #endif
        if (unlikely(!ulength))
            continue;
        if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - ulength < char_pos))
            goto overflow;
        ukind = __Pyx_PyUnicode_KIND(uval);
        udata = __Pyx_PyUnicode_DATA(uval);
        if (ukind == result_ukind) {
            memcpy((char *)result_udata + (char_pos << kind_shift), udata, (size_t) (ulength << kind_shift));
        } else {
            #if PY_VERSION_HEX >= 0x030d0000
            if (unlikely(PyUnicode_CopyCharacters(result_uval, char_pos, uval, 0, ulength) < 0)) goto bad;
            #elif CYTHON_COMPILING_IN_CPYTHON || defined(_PyUnicode_FastCopyCharacters)
            _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength);
            #else
            Py_ssize_t j;
            for (j=0; j < ulength; j++) {
                Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j);
                __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar);
            }
            #endif
        }
        char_pos += ulength;
    }
    return result_uval;
overflow:
    PyErr_SetString(PyExc_OverflowError, "join() result is too long for a Python string");
bad:
    Py_DECREF(result_uval);
    return NULL;
#else
    Py_ssize_t i;
    PyObject *result = NULL;
    PyObject *value_tuple = PyTuple_New(value_count);
    if (unlikely(!value_tuple)) return NULL;
    CYTHON_UNUSED_VAR(max_char);
    CYTHON_UNUSED_VAR(result_ulength);
    for (i=0; i<value_count; i++) {
        if (__Pyx_PyTuple_SET_ITEM(value_tuple, i, values[i]) != (0)) goto bad;
        Py_INCREF(values[i]);
    }
    result = PyUnicode_Join(__pyx_mstate_global->__pyx_empty_unicode, value_tuple);
bad:
    Py_DECREF(value_tuple);
    return result;
#endif
}

/* GetAttr3 */
#if __PYX_LIMITED_VERSION_HEX < 0x030d0000
static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        return NULL;
    __Pyx_PyErr_Clear();
    Py_INCREF(d);
    return d;
}
#endif
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
    PyObject *r;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000
    int res = PyObject_GetOptionalAttr(o, n, &r);
    return (res != 0) ? r : __Pyx_NewRef(d);
#else
  #if CYTHON_USE_TYPE_SLOTS
    if (likely(PyUnicode_Check(n))) {
        r = __Pyx_PyObject_GetAttrStrNoError(o, n);
        if (unlikely(!r) && likely(!PyErr_Occurred())) {
            r = __Pyx_NewRef(d);
        }
        return r;
    }
  #endif
    r = PyObject_GetAttr(o, n);
    return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
#endif
}

/* RaiseUnexpectedTypeError */
static int
__Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj)
{
    __Pyx_TypeName obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME,
                 expected, obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (unlikely(!j)) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared) {
    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
#if CYTHON_ASSUME_SAFE_SIZE
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS)) {
        return __Pyx_PyList_GetItemRefFast(o, wrapped_i, unsafe_shared);
    } else
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        return __Pyx_NewRef(PyList_GET_ITEM(o, wrapped_i));
    }
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
#else
    (void)wraparound;
    (void)boundscheck;
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck, int unsafe_shared) {
    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
#if CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        return __Pyx_NewRef(PyTuple_GET_ITEM(o, wrapped_i));
    }
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
#else
    (void)wraparound;
    (void)boundscheck;
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     int wraparound, int boundscheck, int unsafe_shared) {
    CYTHON_MAYBE_UNUSED_VAR(unsafe_shared);
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS)) {
            return __Pyx_PyList_GetItemRefFast(o, n, unsafe_shared);
        } else if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            return __Pyx_NewRef(PyList_GET_ITEM(o, n));
        }
    } else
    #if !CYTHON_AVOID_BORROWED_REFS
    if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            return __Pyx_NewRef(PyTuple_GET_ITEM(o, n));
        }
    } else
    #endif
#endif
#if CYTHON_USE_TYPE_SLOTS && !CYTHON_COMPILING_IN_PYPY
    {
        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
        if (!is_list && mm && mm->mp_subscript) {
            PyObject *r, *key = PyLong_FromSsize_t(i);
            if (unlikely(!key)) return NULL;
            r = mm->mp_subscript(o, key);
            Py_DECREF(key);
            return r;
        }
        if (is_list || likely(sm && sm->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
                Py_ssize_t l = sm->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return sm->sq_item(o, i);
        }
    }
#else
    if (is_list || !PyMapping_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    (void)wraparound;
    (void)boundscheck;
    return __Pyx_GetItemInt_Generic(o, PyLong_FromSsize_t(i));
}

/* ObjectGetItem */
#if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) {
    PyObject *runerr = NULL;
    Py_ssize_t key_value;
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        __Pyx_TypeName index_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(index));
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError,
            "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer", index_type_name);
        __Pyx_DECREF_TypeName(index_type_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) {
    __Pyx_TypeName obj_type_name;
    if (likely(PyType_Check(obj))) {
        PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_mstate_global->__pyx_n_u_class_getitem);
        if (!meth) {
            PyErr_Clear();
        } else {
            PyObject *result = __Pyx_PyObject_CallOneArg(meth, key);
            Py_DECREF(meth);
            return result;
        }
    }
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {
    PyTypeObject *tp = Py_TYPE(obj);
    PyMappingMethods *mm = tp->tp_as_mapping;
    PySequenceMethods *sm = tp->tp_as_sequence;
    if (likely(mm && mm->mp_subscript)) {
        return mm->mp_subscript(obj, key);
    }
    if (likely(sm && sm->sq_item)) {
        return __Pyx_PyObject_GetIndex(obj, key);
    }
    return __Pyx_PyObject_GetItem_Slow(obj, key);
}
#endif

/* ArgTypeTestFunc (used by ArgTypeTest) */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    __Pyx_TypeName type_name;
    __Pyx_TypeName obj_type_name;
    PyObject *extra_info = __pyx_mstate_global->__pyx_empty_unicode;
    int from_annotation_subclass = 0;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (!exact) {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    } else if (exact == 2) {
        if (__Pyx_TypeCheck(obj, type)) {
            from_annotation_subclass = 1;
            extra_info = __pyx_mstate_global->__pyx_kp_u_Note_that_Cython_is_deliberately;
        }
    }
    type_name = __Pyx_PyType_GetFullyQualifiedName(type);
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME
        ", got " __Pyx_FMT_TYPENAME ")"
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
        "%s%U"
#endif
        , name, type_name, obj_type_name
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
        , (from_annotation_subclass ? ". " : ""), extra_info
#endif
        );
#if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    if (exact == 2 && from_annotation_subclass) {
        PyObject *res;
        PyObject *vargs[2];
        vargs[0] = PyErr_GetRaisedException();
        vargs[1] = extra_info;
        res = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_kp_u_add_note, vargs, 2, NULL);
        Py_XDECREF(res);
        PyErr_SetRaisedException(vargs[0]);
    }
#endif
    __Pyx_DECREF_TypeName(type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* ErrOccurredWithGIL */
static CYTHON_INLINE int __Pyx_ErrOccurredWithGIL(void) {
  int err;
  PyGILState_STATE _save = PyGILState_Ensure();
  err = !!PyErr_Occurred();
  PyGILState_Release(_save);
  return err;
}

/* PyObjectFastCallMethod */
#if !CYTHON_VECTORCALL || PY_VERSION_HEX < 0x03090000
static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf) {
    PyObject *result;
    PyObject *attr = PyObject_GetAttr(args[0], name);
    if (unlikely(!attr))
        return NULL;
    result = __Pyx_PyObject_FastCall(attr, args+1, nargsf - 1);
    Py_DECREF(attr);
    return result;
}
#endif

/* PyObjectVectorCallKwBuilder (used by PyObjectVectorCallMethodKwBuilder) */
#if CYTHON_VECTORCALL
static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    (void)__Pyx_PyObject_FastCallDict;
    if (__Pyx_PyTuple_SET_ITEM(builder, n, key) != (0)) return -1;
    Py_INCREF(key);
    args[n] = value;
    return 0;
}
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    (void)__Pyx_VectorcallBuilder_AddArgStr;
    if (unlikely(!PyUnicode_Check(key))) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        return -1;
    }
    return __Pyx_VectorcallBuilder_AddArg(key, value, builder, args, n);
}
static int __Pyx_VectorcallBuilder_AddArgStr(const char *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
    PyObject *pyKey = PyUnicode_FromString(key);
    if (!pyKey) return -1;
    return __Pyx_VectorcallBuilder_AddArg(pyKey, value, builder, args, n);
}
#else // CYTHON_VECTORCALL
CYTHON_UNUSED static int __Pyx_VectorcallBuilder_AddArg_Check(PyObject *key, PyObject *value, PyObject *builder, CYTHON_UNUSED PyObject **args, CYTHON_UNUSED int n) {
    if (unlikely(!PyUnicode_Check(key))) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        return -1;
    }
    return PyDict_SetItem(builder, key, value);
}
#endif

/* PyObjectVectorCallMethodKwBuilder */
#if !CYTHON_VECTORCALL || PY_VERSION_HEX < 0x03090000
static PyObject *__Pyx_Object_VectorcallMethod_CallFromBuilder(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames) {
    PyObject *result;
    PyObject *obj = PyObject_GetAttr(args[0], name);
    if (unlikely(!obj))
        return NULL;
    result = __Pyx_Object_Vectorcall_CallFromBuilder(obj, args+1, nargsf-1, kwnames);
    Py_DECREF(obj);
    return result;
}
#endif

/* GetAttr (used by Globals) */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
#if CYTHON_USE_TYPE_SLOTS
    if (likely(PyUnicode_Check(n)))
        return __Pyx_PyObject_GetAttrStr(o, n);
#endif
    return PyObject_GetAttr(o, n);
}

/* Globals */
static PyObject* __Pyx_Globals(void) {
    return __Pyx_NewRef(__pyx_mstate_global->__pyx_d);
}

/* SliceObject */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj,
        Py_ssize_t cstart, Py_ssize_t cstop,
        PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice,
        int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) {
    __Pyx_TypeName obj_type_name;
#if CYTHON_USE_TYPE_SLOTS
    PyMappingMethods* mp = Py_TYPE(obj)->tp_as_mapping;
    if (likely(mp && mp->mp_subscript))
#endif
    {
        PyObject* result;
        PyObject *py_slice, *py_start, *py_stop;
        if (_py_slice) {
            py_slice = *_py_slice;
        } else {
            PyObject* owned_start = NULL;
            PyObject* owned_stop = NULL;
            if (_py_start) {
                py_start = *_py_start;
            } else {
                if (has_cstart) {
                    owned_start = py_start = PyLong_FromSsize_t(cstart);
                    if (unlikely(!py_start)) goto bad;
                } else
                    py_start = Py_None;
            }
            if (_py_stop) {
                py_stop = *_py_stop;
            } else {
                if (has_cstop) {
                    owned_stop = py_stop = PyLong_FromSsize_t(cstop);
                    if (unlikely(!py_stop)) {
                        Py_XDECREF(owned_start);
                        goto bad;
                    }
                } else
                    py_stop = Py_None;
            }
            py_slice = PySlice_New(py_start, py_stop, Py_None);
            Py_XDECREF(owned_start);
            Py_XDECREF(owned_stop);
            if (unlikely(!py_slice)) goto bad;
        }
#if CYTHON_USE_TYPE_SLOTS
        result = mp->mp_subscript(obj, py_slice);
#else
        result = PyObject_GetItem(obj, py_slice);
#endif
        if (!_py_slice) {
            Py_DECREF(py_slice);
        }
        return result;
    }
    obj_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is unsliceable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
bad:
    return NULL;
}

/* PyObjectSetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
    return PyObject_SetAttr(obj, attr_name, value);
}
#endif

/* RaiseKeywordRequired */
static void __Pyx_RaiseKeywordRequired(const char* func_name, PyObject* kw_name) {
    PyErr_Format(PyExc_TypeError,
        "%s() needs keyword-only argument %U", func_name, kw_name);
}

/* PyObjectFormatAndDecref */
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f) {
    if (unlikely(!s)) return NULL;
    if (likely(PyUnicode_CheckExact(s))) return s;
    return __Pyx_PyObject_FormatAndDecref(s, f);
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f) {
    PyObject *result;
    if (unlikely(!s)) return NULL;
    result = PyObject_Format(s, f);
    Py_DECREF(s);
    return result;
}

/* IterNextPlain (used by IterNext) */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject *__Pyx_GetBuiltinNext_LimitedAPI(void) {
    if (unlikely(!__pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache))
        __pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache = __Pyx_GetBuiltinName(__pyx_mstate_global->__pyx_n_u_next);
    return __pyx_mstate_global->__Pyx_GetBuiltinNext_LimitedAPI_cache;
}
#endif
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next_Plain(PyObject *iterator) {
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
    PyObject *result;
    PyObject *next = __Pyx_GetBuiltinNext_LimitedAPI();
    if (unlikely(!next)) return NULL;
    result = PyObject_CallFunctionObjArgs(next, iterator, NULL);
    return result;
#else
    (void)__Pyx_GetBuiltinName; // only for early limited API
    iternextfunc iternext = __Pyx_PyObject_GetIterNextFunc(iterator);
    assert(iternext);
    return iternext(iterator);
#endif
}

/* IterNext */
static PyObject *__Pyx_PyIter_Next2Default(PyObject* defval) {
    PyObject* exc_type;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    exc_type = __Pyx_PyErr_CurrentExceptionType();
    if (unlikely(exc_type)) {
        if (!defval || unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
            return NULL;
        __Pyx_PyErr_Clear();
        Py_INCREF(defval);
        return defval;
    }
    if (defval) {
        Py_INCREF(defval);
        return defval;
    }
    __Pyx_PyErr_SetNone(PyExc_StopIteration);
    return NULL;
}
static void __Pyx_PyIter_Next_ErrorNoIterator(PyObject *iterator) {
    __Pyx_TypeName iterator_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(iterator));
    PyErr_Format(PyExc_TypeError,
        __Pyx_FMT_TYPENAME " object is not an iterator", iterator_type_name);
    __Pyx_DECREF_TypeName(iterator_type_name);
}
static CYTHON_INLINE PyObject *__Pyx_PyIter_Next2(PyObject* iterator, PyObject* defval) {
    PyObject* next;
#if !CYTHON_COMPILING_IN_LIMITED_API
    iternextfunc iternext = __Pyx_PyObject_TryGetSlot(iterator, tp_iternext, iternextfunc);
    if (likely(iternext)) {
        next = iternext(iterator);
        if (likely(next))
            return next;
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
        if (unlikely(iternext == &_PyObject_NextNotImplemented))
            return NULL;
    #endif
    } else if (CYTHON_USE_TYPE_SLOTS) {
        __Pyx_PyIter_Next_ErrorNoIterator(iterator);
        return NULL;
    } else
#endif
    if (unlikely(!PyIter_Check(iterator))) {
        __Pyx_PyIter_Next_ErrorNoIterator(iterator);
        return NULL;
    } else {
        next = defval ? PyIter_Next(iterator) : __Pyx_PyIter_Next_Plain(iterator);
        if (likely(next))
            return next;
    }
    return __Pyx_PyIter_Next2Default(defval);
}

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (cls == a || cls == b) return 1;
    mro = cls->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            PyObject *base = PyTuple_GET_ITEM(mro, i);
            if (base == (PyObject *)a || base == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
}
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    if (exc_type1) {
        return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
    } else {
        return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
}
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* DictGetItem */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    if (unlikely(__Pyx_PyDict_GetItemRef(d, key, &value) == 0)) { // no value, no error
        if (unlikely(PyTuple_Check(key))) {
            PyObject* args = PyTuple_Pack(1, key);
            if (likely(args)) {
                PyErr_SetObject(PyExc_KeyError, args);
                Py_DECREF(args);
            }
        } else {
            PyErr_SetObject(PyExc_KeyError, key);
        }
    }
    return value;
}
#endif

/* PyObjectCallNoArg (used by PyObjectCallMethod0) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
    PyObject *arg[2] = {NULL, NULL};
    return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* PyObjectGetMethod (used by PyObjectCallMethod0) */
#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    __Pyx_TypeName type_name;
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR
        if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (likely(descr != NULL)) {
        *method = descr;
        return 0;
    }
    type_name = __Pyx_PyType_GetFullyQualifiedName(tp);
    PyErr_Format(PyExc_AttributeError,
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
                 type_name, name);
    __Pyx_DECREF_TypeName(type_name);
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}
#endif

/* PyObjectCallMethod0 (used by dict_iter) */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
#if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))
    PyObject *args[1] = {obj};
    (void) __Pyx_PyObject_CallOneArg;
    (void) __Pyx_PyObject_CallNoArg;
    return PyObject_VectorcallMethod(method_name, args, 1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#else
    PyObject *method = NULL, *result = NULL;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_CallOneArg(method, obj);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) goto bad;
    result = __Pyx_PyObject_CallNoArg(method);
    Py_DECREF(method);
bad:
    return result;
#endif
}

/* RaiseNoneIterError (used by UnpackTupleError) */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
}

/* UnpackTupleError (used by UnpackTuple2) */
static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
    if (t == Py_None) {
      __Pyx_RaiseNoneNotIterableError();
    } else {
      Py_ssize_t size = __Pyx_PyTuple_GET_SIZE(t);
 #if !CYTHON_ASSUME_SAFE_SIZE
      if (unlikely(size < 0)) return;
 #endif
      if (size < index) {
        __Pyx_RaiseNeedMoreValuesError(size);
      } else {
        __Pyx_RaiseTooManyValuesError(index);
      }
    }
}

/* UnpackTuple2 (used by dict_iter) */
static CYTHON_INLINE int __Pyx_unpack_tuple2(
        PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple) {
    if (likely(is_tuple || PyTuple_Check(tuple))) {
        Py_ssize_t size;
        if (has_known_size) {
            return __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple);
        }
        size = __Pyx_PyTuple_GET_SIZE(tuple);
        if (likely(size == 2)) {
            return __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple);
        }
        if (size >= 0) {
            __Pyx_UnpackTupleError(tuple, 2);
        }
        return -1;
    } else {
        return __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple);
    }
}
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
        PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) {
    PyObject *value1 = NULL, *value2 = NULL;
#if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
    value1 = __Pyx_PySequence_ITEM(tuple, 0);  if (unlikely(!value1)) goto bad;
    value2 = __Pyx_PySequence_ITEM(tuple, 1);  if (unlikely(!value2)) goto bad;
#else
    value1 = PyTuple_GET_ITEM(tuple, 0);  Py_INCREF(value1);
    value2 = PyTuple_GET_ITEM(tuple, 1);  Py_INCREF(value2);
#endif
    if (decref_tuple) {
        Py_DECREF(tuple);
    }
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
#if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
bad:
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
#endif
}
static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
                                       int has_known_size, int decref_tuple) {
    Py_ssize_t index;
    PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
    iternextfunc iternext;
    iter = PyObject_GetIter(tuple);
    if (unlikely(!iter)) goto bad;
    if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
    iternext = __Pyx_PyObject_GetIterNextFunc(iter);
    value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
    value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
    if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
    Py_DECREF(iter);
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
unpacking_failed:
    if (!has_known_size && __Pyx_IterFinish() == 0)
        __Pyx_RaiseNeedMoreValuesError(index);
bad:
    Py_XDECREF(iter);
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
}

/* dict_iter */
#if CYTHON_COMPILING_IN_PYPY
#include <string.h>
#endif
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_source_is_dict) {
    is_dict = is_dict || likely(PyDict_CheckExact(iterable));
    *p_source_is_dict = is_dict;
    if (is_dict) {
#if !CYTHON_COMPILING_IN_PYPY
        *p_orig_length = PyDict_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
#else
        static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL;
        PyObject **pp = NULL;
        if (method_name) {
            const char *name = PyUnicode_AsUTF8(method_name);
            if (strcmp(name, "iteritems") == 0) pp = &py_items;
            else if (strcmp(name, "iterkeys") == 0) pp = &py_keys;
            else if (strcmp(name, "itervalues") == 0) pp = &py_values;
            if (pp) {
                if (!*pp) {
                    *pp = PyUnicode_FromString(name + 4);
                    if (!*pp)
                        return NULL;
                }
                method_name = *pp;
            }
        }
#endif
    }
    *p_orig_length = 0;
    if (method_name) {
        PyObject* iter;
        iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
        if (!iterable)
            return NULL;
#if !CYTHON_COMPILING_IN_PYPY
        if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
            return iterable;
#endif
        iter = PyObject_GetIter(iterable);
        Py_DECREF(iterable);
        return iter;
    }
    return PyObject_GetIter(iterable);
}
#if !CYTHON_AVOID_BORROWED_REFS
static CYTHON_INLINE int __Pyx_dict_iter_next_source_is_dict(
        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
        PyObject** pkey, PyObject** pvalue, PyObject** pitem) {
    PyObject *key, *value;
    if (unlikely(orig_length != PyDict_Size(iter_obj))) {
        PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
        return -1;
    }
    if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
        return 0;
    }
    if (pitem) {
        PyObject* tuple = PyTuple_New(2);
        if (unlikely(!tuple)) {
            return -1;
        }
        Py_INCREF(key);
        Py_INCREF(value);
        #if CYTHON_ASSUME_SAFE_MACROS
        PyTuple_SET_ITEM(tuple, 0, key);
        PyTuple_SET_ITEM(tuple, 1, value);
        #else
        if (unlikely(PyTuple_SetItem(tuple, 0, key) < 0)) {
            Py_DECREF(value);
            Py_DECREF(tuple);
            return -1;
        }
        if (unlikely(PyTuple_SetItem(tuple, 1, value) < 0)) {
            Py_DECREF(tuple);
            return -1;
        }
        #endif
        *pitem = tuple;
    } else {
        if (pkey) {
            Py_INCREF(key);
            *pkey = key;
        }
        if (pvalue) {
            Py_INCREF(value);
            *pvalue = value;
        }
    }
    return 1;
}
#endif
static CYTHON_INLINE int __Pyx_dict_iter_next(
        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
        PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
    PyObject* next_item;
#if !CYTHON_AVOID_BORROWED_REFS
    if (source_is_dict) {
        int result;
#if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_BEGIN_CRITICAL_SECTION(iter_obj);
#endif
        result = __Pyx_dict_iter_next_source_is_dict(iter_obj, orig_length, ppos, pkey, pvalue, pitem);
#if PY_VERSION_HEX >= 0x030d0000 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_END_CRITICAL_SECTION();
#endif
        return result;
    } else if (PyTuple_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        Py_ssize_t tuple_size = __Pyx_PyTuple_GET_SIZE(iter_obj);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(tuple_size < 0)) return -1;
        #endif
        if (unlikely(pos >= tuple_size)) return 0;
        *ppos = pos + 1;
        #if CYTHON_ASSUME_SAFE_MACROS
        next_item = PyTuple_GET_ITEM(iter_obj, pos);
        #else
        next_item = PyTuple_GetItem(iter_obj, pos);
        if (unlikely(!next_item)) return -1;
        #endif
        Py_INCREF(next_item);
    } else if (PyList_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        Py_ssize_t list_size = __Pyx_PyList_GET_SIZE(iter_obj);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(list_size < 0)) return -1;
        #endif
        if (unlikely(pos >= list_size)) return 0;
        *ppos = pos + 1;
        next_item = __Pyx_PyList_GetItemRef(iter_obj, pos);
        if (unlikely(!next_item)) return -1;
    } else
#endif
    {
        next_item = PyIter_Next(iter_obj);
        if (unlikely(!next_item)) {
            return __Pyx_IterFinish();
        }
    }
    if (pitem) {
        *pitem = next_item;
    } else if (pkey && pvalue) {
        if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
            return -1;
    } else if (pkey) {
        *pkey = next_item;
    } else {
        *pvalue = next_item;
    }
    return 1;
}

/* tp_new */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject* __Pyx_tp_new_fallback(PyObject* type_obj, PyObject* args, PyObject* kwargs) {
    PyObject *new_func = NULL, *new_args = NULL, *obj;
    Py_ssize_t i, nargs = PyTuple_Size(args);
    if (unlikely(nargs < 0)) goto bad;
    new_args = PyTuple_New(nargs + 1);
    if (unlikely(!new_args)) goto bad;
    for (i = 0; i < nargs + 1; i++) {
        PyObject *item = (i == 0) ? type_obj : PyTuple_GetItem(args, i - 1);
        if (unlikely(!item)) goto bad;
        Py_INCREF(item);
        if (unlikely(PyTuple_SetItem(new_args, i, item)) < 0) goto bad;
    }
    new_func = PyObject_GetAttrString(type_obj, "__new__");
    if (unlikely(!new_func)) goto bad;
    obj = PyObject_Call(new_func, new_args, kwargs);
    Py_DECREF(new_func);
    Py_DECREF(new_args);
    return obj;
 bad:
    Py_XDECREF(new_func);
    Py_XDECREF(new_args);
    return NULL;
}
#endif
static PyObject* __Pyx_tp_new_kwargs(PyObject* type_obj, PyObject* args, PyObject* kwargs) {
    newfunc tp_new = __Pyx_PyType_TryGetSlot((PyTypeObject*)type_obj, tp_new, newfunc);
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
    if (!tp_new) return __Pyx_tp_new_fallback(type_obj, args, kwargs);
#else
    assert(tp_new != NULL);
#endif
    return tp_new((PyTypeObject*)type_obj, args, kwargs);
}

/* CallNextTpDealloc */
static void __Pyx_call_next_tp_dealloc(PyObject* obj, destructor current_tp_dealloc) {
    PyTypeObject* type = Py_TYPE(obj);
    destructor tp_dealloc = NULL;
    while (type && __Pyx_PyType_GetSlot(type, tp_dealloc, destructor) != current_tp_dealloc)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    while (type && (tp_dealloc = __Pyx_PyType_GetSlot(type, tp_dealloc, destructor)) == current_tp_dealloc)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    if (type)
        tp_dealloc(obj);
}

/* AllocateExtensionType */
static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final) {
    if (is_final || likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
        allocfunc alloc_func = __Pyx_PyType_GetSlot(t, tp_alloc, allocfunc);
        return alloc_func(t, 0);
    } else {
        newfunc tp_new = __Pyx_PyType_TryGetSlot(&PyBaseObject_Type, tp_new, newfunc);
    #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
        if (!tp_new) {
            PyObject *new_str = PyUnicode_FromString("__new__");
            if (likely(new_str)) {
                PyObject *o = PyObject_CallMethodObjArgs((PyObject *)&PyBaseObject_Type, new_str, t, NULL);
                Py_DECREF(new_str);
                return o;
            } else
                return NULL;
        } else
    #endif
        return tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0);
    }
}

/* CallTypeTraverse */
#if !CYTHON_USE_TYPE_SPECS || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x03090000)
#else
static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg) {
    #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x03090000
    if (__Pyx_get_runtime_version() < 0x03090000) return 0;
    #endif
    if (!always_call) {
        PyTypeObject *base = __Pyx_PyObject_GetSlot(o, tp_base, PyTypeObject*);
        unsigned long flags = PyType_GetFlags(base);
        if (flags & Py_TPFLAGS_HEAPTYPE) {
            return 0;
        }
    }
    Py_VISIT((PyObject*)Py_TYPE(o));
    return 0;
}
#endif

/* VoidPtrExport */
static int __Pyx_ExportVoidPtr(PyObject *api_dict, const char *name, void *p, const char *sig) {
    PyObject *cobj;
    cobj = PyCapsule_New(p, sig, 0);
    if (!cobj)
        goto bad;
    if (PyDict_SetItemString(api_dict, name, cobj) < 0)
        goto bad;
    Py_DECREF(cobj);
    return 0;
bad:
    Py_XDECREF(cobj);
    return -1;
}

/* GetApiDict */
static PyObject *__Pyx_ApiExport_GetApiDict(void) {
    PyObject *d;
    if (__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pyx_capi, &d) == -1)
        return NULL;
    if (!d) {
        d = PyDict_New();
        if (!d)
            goto bad;
        if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_pyx_capi, d) < 0)
            goto bad;
    }
    return d;
bad:
    Py_XDECREF(d);
    return NULL;
}

/* FunctionExport */
static int __Pyx_ExportFunction(PyObject *api_dict, const char *name, void (*f)(void), const char *sig) {
    PyObject *cobj;
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    tmp.fp = f;
    cobj = PyCapsule_New(tmp.p, sig, 0);
    if (!cobj)
        goto bad;
    if (PyDict_SetItemString(api_dict, name, cobj) < 0)
        goto bad;
    Py_DECREF(cobj);
    return 0;
bad:
    Py_XDECREF(cobj);
    return -1;
}

/* TypeImport */
#ifndef __PYX_HAVE_RT_ImportType_3_2_4
#define __PYX_HAVE_RT_ImportType_3_2_4
static PyTypeObject *__Pyx_ImportType_3_2_4(PyObject *module, const char *module_name, const char *class_name,
    size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_2_4 check_size)
{
    PyObject *result = 0;
    Py_ssize_t basicsize;
    Py_ssize_t itemsize;
#if defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API)
    PyObject *py_basicsize;
    PyObject *py_itemsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#if !( defined(Py_LIMITED_API) || (defined(CYTHON_COMPILING_IN_LIMITED_API) && CYTHON_COMPILING_IN_LIMITED_API) )
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
    itemsize = ((PyTypeObject *)result)->tp_itemsize;
#else
    if (size == 0) {
        return (PyTypeObject *)result;
    }
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
    py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
    if (!py_itemsize)
        goto bad;
    itemsize = PyLong_AsSsize_t(py_itemsize);
    Py_DECREF(py_itemsize);
    py_itemsize = 0;
    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if (itemsize) {
        if (size % alignment) {
            alignment = size % alignment;
        }
        if (itemsize < (Py_ssize_t)alignment)
            itemsize = (Py_ssize_t)alignment;
    }
    if ((size_t)(basicsize + itemsize) < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize+itemsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error_3_2_4 &&
            ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd-%zd from PyObject",
            module_name, class_name, size, basicsize, basicsize+itemsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_2_4 && (size_t)basicsize > size) {
        if (PyErr_WarnFormat(NULL, 0,
                "%.200s.%.200s size changed, may indicate binary incompatibility. "
                "Expected %zd from C header, got %zd from PyObject",
                module_name, class_name, size, basicsize) < 0) {
            goto bad;
        }
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* LimitedApiGetTypeDict (used by SetItemOnTypeDict) */
#if CYTHON_COMPILING_IN_LIMITED_API
static Py_ssize_t __Pyx_GetTypeDictOffset(void) {
    PyObject *tp_dictoffset_o;
    Py_ssize_t tp_dictoffset;
    tp_dictoffset_o = PyObject_GetAttrString((PyObject*)(&PyType_Type), "__dictoffset__");
    if (unlikely(!tp_dictoffset_o)) return -1;
    tp_dictoffset = PyLong_AsSsize_t(tp_dictoffset_o);
    Py_DECREF(tp_dictoffset_o);
    if (unlikely(tp_dictoffset == 0)) {
        PyErr_SetString(
            PyExc_TypeError,
            "'type' doesn't have a dictoffset");
        return -1;
    } else if (unlikely(tp_dictoffset < 0)) {
        PyErr_SetString(
            PyExc_TypeError,
            "'type' has an unexpected negative dictoffset. "
            "Please report this as Cython bug");
        return -1;
    }
    return tp_dictoffset;
}
static PyObject *__Pyx_GetTypeDict(PyTypeObject *tp) {
    static Py_ssize_t tp_dictoffset = 0;
    if (unlikely(tp_dictoffset == 0)) {
        tp_dictoffset = __Pyx_GetTypeDictOffset();
        if (unlikely(tp_dictoffset == -1 && PyErr_Occurred())) {
            tp_dictoffset = 0; // try again next time?
            return NULL;
        }
    }
    return *(PyObject**)((char*)tp + tp_dictoffset);
}
#endif

/* SetItemOnTypeDict (used by FixUpExtensionType) */
static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v) {
    int result;
    PyObject *tp_dict;
#if CYTHON_COMPILING_IN_LIMITED_API
    tp_dict = __Pyx_GetTypeDict(tp);
    if (unlikely(!tp_dict)) return -1;
#else
    tp_dict = tp->tp_dict;
#endif
    result = PyDict_SetItem(tp_dict, k, v);
    if (likely(!result)) {
        PyType_Modified(tp);
        if (unlikely(PyObject_HasAttr(v, __pyx_mstate_global->__pyx_n_u_set_name))) {
            PyObject *setNameResult = PyObject_CallMethodObjArgs(v, __pyx_mstate_global->__pyx_n_u_set_name,  (PyObject *) tp, k, NULL);
            if (!setNameResult) return -1;
            Py_DECREF(setNameResult);
        }
    }
    return result;
}

/* FixUpExtensionType */
static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {
#if __PYX_LIMITED_VERSION_HEX > 0x030900B1
    CYTHON_UNUSED_VAR(spec);
    CYTHON_UNUSED_VAR(type);
    CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);
#else
    const PyType_Slot *slot = spec->slots;
    int changed = 0;
#if !CYTHON_COMPILING_IN_LIMITED_API
    while (slot && slot->slot && slot->slot != Py_tp_members)
        slot++;
    if (slot && slot->slot == Py_tp_members) {
#if !CYTHON_COMPILING_IN_CPYTHON
        const
#endif  // !CYTHON_COMPILING_IN_CPYTHON)
            PyMemberDef *memb = (PyMemberDef*) slot->pfunc;
        while (memb && memb->name) {
            if (memb->name[0] == '_' && memb->name[1] == '_') {
                if (strcmp(memb->name, "__weaklistoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_weaklistoffset = memb->offset;
                    changed = 1;
                }
                else if (strcmp(memb->name, "__dictoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_dictoffset = memb->offset;
                    changed = 1;
                }
#if CYTHON_METH_FASTCALL
                else if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_vectorcall_offset = memb->offset;
                    changed = 1;
                }
#endif  // CYTHON_METH_FASTCALL
#if !CYTHON_COMPILING_IN_PYPY
                else if (strcmp(memb->name, "__module__") == 0) {
                    PyObject *descr;
                    assert(memb->type == T_OBJECT);
                    assert(memb->flags == 0 || memb->flags == READONLY);
                    descr = PyDescr_NewMember(type, memb);
                    if (unlikely(!descr))
                        return -1;
                    int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr);
                    Py_DECREF(descr);
                    if (unlikely(set_item_result < 0)) {
                        return -1;
                    }
                    changed = 1;
                }
#endif  // !CYTHON_COMPILING_IN_PYPY
            }
            memb++;
        }
    }
#endif  // !CYTHON_COMPILING_IN_LIMITED_API
#if !CYTHON_COMPILING_IN_PYPY
    slot = spec->slots;
    while (slot && slot->slot && slot->slot != Py_tp_getset)
        slot++;
    if (slot && slot->slot == Py_tp_getset) {
        PyGetSetDef *getset = (PyGetSetDef*) slot->pfunc;
        while (getset && getset->name) {
            if (getset->name[0] == '_' && getset->name[1] == '_' && strcmp(getset->name, "__module__") == 0) {
                PyObject *descr = PyDescr_NewGetSet(type, getset);
                if (unlikely(!descr))
                    return -1;
                #if CYTHON_COMPILING_IN_LIMITED_API
                PyObject *pyname = PyUnicode_FromString(getset->name);
                if (unlikely(!pyname)) {
                    Py_DECREF(descr);
                    return -1;
                }
                int set_item_result = __Pyx_SetItemOnTypeDict(type, pyname, descr);
                Py_DECREF(pyname);
                #else
                CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);
                int set_item_result = PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr);
                #endif
                Py_DECREF(descr);
                if (unlikely(set_item_result < 0)) {
                    return -1;
                }
                changed = 1;
            }
            ++getset;
        }
    }
#else
    CYTHON_UNUSED_VAR(__Pyx__SetItemOnTypeDict);
#endif  // !CYTHON_COMPILING_IN_PYPY
    if (changed)
        PyType_Modified(type);
#endif  // PY_VERSION_HEX > 0x030900B1
    return 0;
}

/* ValidateBasesTuple (used by PyType_Ready) */
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) {
    Py_ssize_t i, n;
#if CYTHON_ASSUME_SAFE_SIZE
    n = PyTuple_GET_SIZE(bases);
#else
    n = PyTuple_Size(bases);
    if (unlikely(n < 0)) return -1;
#endif
    for (i = 1; i < n; i++)
    {
        PyTypeObject *b;
#if CYTHON_AVOID_BORROWED_REFS
        PyObject *b0 = PySequence_GetItem(bases, i);
        if (!b0) return -1;
#elif CYTHON_ASSUME_SAFE_MACROS
        PyObject *b0 = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *b0 = PyTuple_GetItem(bases, i);
        if (!b0) return -1;
#endif
        b = (PyTypeObject*) b0;
        if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE))
        {
            __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(b);
            PyErr_Format(PyExc_TypeError,
                "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name);
            __Pyx_DECREF_TypeName(b_name);
#if CYTHON_AVOID_BORROWED_REFS
            Py_DECREF(b0);
#endif
            return -1;
        }
        if (dictoffset == 0)
        {
            Py_ssize_t b_dictoffset = 0;
#if CYTHON_USE_TYPE_SLOTS
            b_dictoffset = b->tp_dictoffset;
#else
            PyObject *py_b_dictoffset = PyObject_GetAttrString((PyObject*)b, "__dictoffset__");
            if (!py_b_dictoffset) goto dictoffset_return;
            b_dictoffset = PyLong_AsSsize_t(py_b_dictoffset);
            Py_DECREF(py_b_dictoffset);
            if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return;
#endif
            if (b_dictoffset) {
                {
                    __Pyx_TypeName b_name = __Pyx_PyType_GetFullyQualifiedName(b);
                    PyErr_Format(PyExc_TypeError,
                        "extension type '%.200s' has no __dict__ slot, "
                        "but base type '" __Pyx_FMT_TYPENAME "' has: "
                        "either add 'cdef dict __dict__' to the extension type "
                        "or add '__slots__ = [...]' to the base type",
                        type_name, b_name);
                    __Pyx_DECREF_TypeName(b_name);
                }
#if !CYTHON_USE_TYPE_SLOTS
              dictoffset_return:
#endif
#if CYTHON_AVOID_BORROWED_REFS
                Py_DECREF(b0);
#endif
                return -1;
            }
        }
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(b0);
#endif
    }
    return 0;
}
#endif

/* PyType_Ready */
CYTHON_UNUSED static int __Pyx_PyType_HasMultipleInheritance(PyTypeObject *t) {
    while (t) {
        PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
        if (bases) {
            return 1;
        }
        t = __Pyx_PyType_GetSlot(t, tp_base, PyTypeObject*);
    }
    return 0;
}
static int __Pyx_PyType_Ready(PyTypeObject *t) {
#if CYTHON_USE_TYPE_SPECS || !CYTHON_COMPILING_IN_CPYTHON || defined(PYSTON_MAJOR_VERSION)
    (void)__Pyx_PyObject_CallMethod0;
#if CYTHON_USE_TYPE_SPECS
    (void)__Pyx_validate_bases_tuple;
#endif
    return PyType_Ready(t);
#else
    int r;
    if (!__Pyx_PyType_HasMultipleInheritance(t)) {
        return PyType_Ready(t);
    }
    PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
    if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1))
        return -1;
#if !defined(PYSTON_MAJOR_VERSION)
    {
        int gc_was_enabled;
    #if PY_VERSION_HEX >= 0x030A00b1
        gc_was_enabled = PyGC_Disable();
        (void)__Pyx_PyObject_CallMethod0;
    #else
        PyObject *ret, *py_status;
        PyObject *gc = NULL;
        #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) &&\
                !CYTHON_COMPILING_IN_GRAAL
        gc = PyImport_GetModule(__pyx_mstate_global->__pyx_kp_u_gc);
        #endif
        if (unlikely(!gc)) gc = PyImport_Import(__pyx_mstate_global->__pyx_kp_u_gc);
        if (unlikely(!gc)) return -1;
        py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_isenabled);
        if (unlikely(!py_status)) {
            Py_DECREF(gc);
            return -1;
        }
        gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
        Py_DECREF(py_status);
        if (gc_was_enabled > 0) {
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_disable);
            if (unlikely(!ret)) {
                Py_DECREF(gc);
                return -1;
            }
            Py_DECREF(ret);
        } else if (unlikely(gc_was_enabled == -1)) {
            Py_DECREF(gc);
            return -1;
        }
    #endif
        t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
#if PY_VERSION_HEX >= 0x030A0000
        t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE;
#endif
#else
        (void)__Pyx_PyObject_CallMethod0;
#endif
    r = PyType_Ready(t);
#if !defined(PYSTON_MAJOR_VERSION)
        t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
    #if PY_VERSION_HEX >= 0x030A00b1
        if (gc_was_enabled)
            PyGC_Enable();
    #else
        if (gc_was_enabled) {
            PyObject *tp, *v, *tb;
            PyErr_Fetch(&tp, &v, &tb);
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_enable);
            if (likely(ret || r == -1)) {
                Py_XDECREF(ret);
                PyErr_Restore(tp, v, tb);
            } else {
                Py_XDECREF(tp);
                Py_XDECREF(v);
                Py_XDECREF(tb);
                r = -1;
            }
        }
        Py_DECREF(gc);
    #endif
    }
#endif
    return r;
#endif
}

/* SetVTable */
static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) {
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
    if (unlikely(!ob))
        goto bad;
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0))
#else
    if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0))
#endif
        goto bad;
    Py_DECREF(ob);
    return 0;
bad:
    Py_XDECREF(ob);
    return -1;
}

/* GetVTable (used by MergeVTables) */
static void* __Pyx_GetVtable(PyTypeObject *type) {
    void* ptr;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_mstate_global->__pyx_n_u_pyx_vtable);
#else
    PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable);
#endif
    if (!ob)
        goto bad;
    ptr = PyCapsule_GetPointer(ob, 0);
    if (!ptr && !PyErr_Occurred())
        PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
    Py_DECREF(ob);
    return ptr;
bad:
    Py_XDECREF(ob);
    return NULL;
}

/* MergeVTables */
static int __Pyx_MergeVtables(PyTypeObject *type) {
    int i=0;
    Py_ssize_t size;
    void** base_vtables;
    __Pyx_TypeName tp_base_name = NULL;
    __Pyx_TypeName base_name = NULL;
    void* unknown = (void*)-1;
    PyObject* bases = __Pyx_PyType_GetSlot(type, tp_bases, PyObject*);
    int base_depth = 0;
    {
        PyTypeObject* base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
        while (base) {
            base_depth += 1;
            base = __Pyx_PyType_GetSlot(base, tp_base, PyTypeObject*);
        }
    }
    base_vtables = (void**) PyMem_Malloc(sizeof(void*) * (size_t)(base_depth + 1));
    base_vtables[0] = unknown;
#if CYTHON_COMPILING_IN_LIMITED_API
    size = PyTuple_Size(bases);
    if (size < 0) goto other_failure;
#else
    size = PyTuple_GET_SIZE(bases);
#endif
    for (i = 1; i < size; i++) {
        PyObject *basei;
        void* base_vtable;
#if CYTHON_AVOID_BORROWED_REFS
        basei = PySequence_GetItem(bases, i);
        if (unlikely(!basei)) goto other_failure;
#elif !CYTHON_ASSUME_SAFE_MACROS
        basei = PyTuple_GetItem(bases, i);
        if (unlikely(!basei)) goto other_failure;
#else
        basei = PyTuple_GET_ITEM(bases, i);
#endif
        base_vtable = __Pyx_GetVtable((PyTypeObject*)basei);
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(basei);
#endif
        if (base_vtable != NULL) {
            int j;
            PyTypeObject* base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
            for (j = 0; j < base_depth; j++) {
                if (base_vtables[j] == unknown) {
                    base_vtables[j] = __Pyx_GetVtable(base);
                    base_vtables[j + 1] = unknown;
                }
                if (base_vtables[j] == base_vtable) {
                    break;
                } else if (base_vtables[j] == NULL) {
                    goto bad;
                }
                base = __Pyx_PyType_GetSlot(base, tp_base, PyTypeObject*);
            }
        }
    }
    PyErr_Clear();
    PyMem_Free(base_vtables);
    return 0;
bad:
    {
        PyTypeObject* basei = NULL;
        PyTypeObject* tp_base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
        tp_base_name = __Pyx_PyType_GetFullyQualifiedName(tp_base);
#if CYTHON_AVOID_BORROWED_REFS
        basei = (PyTypeObject*)PySequence_GetItem(bases, i);
        if (unlikely(!basei)) goto really_bad;
#elif !CYTHON_ASSUME_SAFE_MACROS
        basei = (PyTypeObject*)PyTuple_GetItem(bases, i);
        if (unlikely(!basei)) goto really_bad;
#else
        basei = (PyTypeObject*)PyTuple_GET_ITEM(bases, i);
#endif
        base_name = __Pyx_PyType_GetFullyQualifiedName(basei);
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(basei);
#endif
    }
    PyErr_Format(PyExc_TypeError,
        "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name);
#if CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
really_bad: // bad has failed!
#endif
    __Pyx_DECREF_TypeName(tp_base_name);
    __Pyx_DECREF_TypeName(base_name);
#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_AVOID_BORROWED_REFS || !CYTHON_ASSUME_SAFE_MACROS
other_failure:
#endif
    PyMem_Free(base_vtables);
    return -1;
}

/* DelItemOnTypeDict (used by SetupReduce) */
static int __Pyx__DelItemOnTypeDict(PyTypeObject *tp, PyObject *k) {
    int result;
    PyObject *tp_dict;
#if CYTHON_COMPILING_IN_LIMITED_API
    tp_dict = __Pyx_GetTypeDict(tp);
    if (unlikely(!tp_dict)) return -1;
#else
    tp_dict = tp->tp_dict;
#endif
    result = PyDict_DelItem(tp_dict, k);
    if (likely(!result)) PyType_Modified(tp);
    return result;
}

/* SetupReduce */
static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
  int ret;
  PyObject *name_attr;
  name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_mstate_global->__pyx_n_u_name);
  if (likely(name_attr)) {
      ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
  } else {
      ret = -1;
  }
  if (unlikely(ret < 0)) {
      PyErr_Clear();
      ret = 0;
  }
  Py_XDECREF(name_attr);
  return ret;
}
static int __Pyx_setup_reduce(PyObject* type_obj) {
    int ret = 0;
    PyObject *object_reduce = NULL;
    PyObject *object_getstate = NULL;
    PyObject *object_reduce_ex = NULL;
    PyObject *reduce = NULL;
    PyObject *reduce_ex = NULL;
    PyObject *reduce_cython = NULL;
    PyObject *setstate = NULL;
    PyObject *setstate_cython = NULL;
    PyObject *getstate = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
    getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_getstate);
#else
    getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_getstate);
    if (!getstate && PyErr_Occurred()) {
        goto __PYX_BAD;
    }
#endif
    if (getstate) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate);
#else
        object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_getstate);
        if (!object_getstate && PyErr_Occurred()) {
            goto __PYX_BAD;
        }
#endif
        if (object_getstate != getstate) {
            goto __PYX_GOOD;
        }
    }
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
    if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce); if (!object_reduce) goto __PYX_BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_mstate_global->__pyx_n_u_reduce); if (!object_reduce) goto __PYX_BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_mstate_global->__pyx_n_u_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_mstate_global->__pyx_n_u_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython);
            if (likely(reduce_cython)) {
                ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
            } else if (reduce == object_reduce || PyErr_Occurred()) {
                goto __PYX_BAD;
            }
            setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate);
            if (!setstate) PyErr_Clear();
            if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_mstate_global->__pyx_n_u_setstate_cython)) {
                setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython);
                if (likely(setstate_cython)) {
                    ret = __Pyx_SetItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                    ret = __Pyx_DelItemOnTypeDict((PyTypeObject*)type_obj, __pyx_mstate_global->__pyx_n_u_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                } else if (!setstate || PyErr_Occurred()) {
                    goto __PYX_BAD;
                }
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto __PYX_GOOD;
__PYX_BAD:
    if (!PyErr_Occurred()) {
        __Pyx_TypeName type_obj_name =
            __Pyx_PyType_GetFullyQualifiedName((PyTypeObject*)type_obj);
        PyErr_Format(PyExc_RuntimeError,
            "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name);
        __Pyx_DECREF_TypeName(type_obj_name);
    }
    ret = -1;
__PYX_GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
    Py_XDECREF(object_reduce);
    Py_XDECREF(object_reduce_ex);
    Py_XDECREF(object_getstate);
    Py_XDECREF(getstate);
#endif
    Py_XDECREF(reduce);
    Py_XDECREF(reduce_ex);
    Py_XDECREF(reduce_cython);
    Py_XDECREF(setstate);
    Py_XDECREF(setstate_cython);
    return ret;
}

/* PxdImportShared (used by FunctionImport) */
#ifndef __PYX_HAVE_RT_ImportFromPxd_3_2_4
#define __PYX_HAVE_RT_ImportFromPxd_3_2_4
static int __Pyx_ImportFromPxd_3_2_4(PyObject *module, const char *name, void **p, const char *sig, const char *what) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    d = PyObject_GetAttrString(module, "__pyx_capi__");
    if (!d)
        goto bad;
#if (defined(Py_LIMITED_API) && Py_LIMITED_API >= 0x030d0000) || (!defined(Py_LIMITED_API) && PY_VERSION_HEX >= 0x030d0000)
    PyDict_GetItemStringRef(d, name, &cobj);
#else
    cobj = PyDict_GetItemString(d, name);
    Py_XINCREF(cobj);
#endif
    if (!cobj) {
        PyErr_Format(PyExc_ImportError,
            "%.200s does not export expected C %.8s %.200s",
                PyModule_GetName(module), what, name);
        goto bad;
    }
    if (!PyCapsule_IsValid(cobj, sig)) {
        PyErr_Format(PyExc_TypeError,
            "C %.8s %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             what, PyModule_GetName(module), name, sig, PyCapsule_GetName(cobj));
        goto bad;
    }
    *p = PyCapsule_GetPointer(cobj, sig);
    if (!(*p))
        goto bad;
    Py_DECREF(d);
    Py_DECREF(cobj);
    return 0;
bad:
    Py_XDECREF(d);
    Py_XDECREF(cobj);
    return -1;
}
#endif

/* FunctionImport */
#ifndef __PYX_HAVE_RT_ImportFunction_3_2_4
#define __PYX_HAVE_RT_ImportFunction_3_2_4
static int __Pyx_ImportFunction_3_2_4(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    int result = __Pyx_ImportFromPxd_3_2_4(module, funcname, &tmp.p, sig, "function");
    if (result == 0) {
        *f = tmp.fp;
    }
    return result;
}
#endif

/* dict_setdefault (used by FetchCommonType) */
static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value) {
    PyObject* value;
#if __PYX_LIMITED_VERSION_HEX >= 0x030F0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4)
    PyDict_SetDefaultRef(d, key, default_value, &value);
#elif CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    PyObject *args[] = {d, key, default_value};
    value = PyObject_VectorcallMethod(__pyx_mstate_global->__pyx_n_u_setdefault, args, 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#elif CYTHON_COMPILING_IN_LIMITED_API
    value = PyObject_CallMethodObjArgs(d, __pyx_mstate_global->__pyx_n_u_setdefault, key, default_value, NULL);
#else
    value = PyDict_SetDefault(d, key, default_value);
    if (unlikely(!value)) return NULL;
    Py_INCREF(value);
#endif
    return value;
}

/* AddModuleRef (used by FetchSharedCythonModule) */
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
  static PyObject *__Pyx_PyImport_AddModuleObjectRef(PyObject *name) {
      PyObject *module_dict = PyImport_GetModuleDict();
      PyObject *m;
      if (PyMapping_GetOptionalItem(module_dict, name, &m) < 0) {
          return NULL;
      }
      if (m != NULL && PyModule_Check(m)) {
          return m;
      }
      Py_XDECREF(m);
      m = PyModule_NewObject(name);
      if (m == NULL)
          return NULL;
      if (PyDict_CheckExact(module_dict)) {
          PyObject *new_m;
          (void)PyDict_SetDefaultRef(module_dict, name, m, &new_m);
          Py_DECREF(m);
          return new_m;
      } else {
           if (PyObject_SetItem(module_dict, name, m) != 0) {
                Py_DECREF(m);
                return NULL;
            }
            return m;
      }
  }
  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
      PyObject *py_name = PyUnicode_FromString(name);
      if (!py_name) return NULL;
      PyObject *module = __Pyx_PyImport_AddModuleObjectRef(py_name);
      Py_DECREF(py_name);
      return module;
  }
#elif __PYX_LIMITED_VERSION_HEX >= 0x030d0000
  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
#else
  static PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
      PyObject *module = PyImport_AddModule(name);
      Py_XINCREF(module);
      return module;
  }
#endif

/* FetchSharedCythonModule (used by FetchCommonType) */
static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
    return __Pyx_PyImport_AddModuleRef(__PYX_ABI_MODULE_NAME);
}

/* FetchCommonType (used by CommonTypesMetaclass) */
#if __PYX_LIMITED_VERSION_HEX < 0x030C0000
static PyObject* __Pyx_PyType_FromMetaclass(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
    PyObject *result = __Pyx_PyType_FromModuleAndSpec(module, spec, bases);
    if (result && metaclass) {
        PyObject *old_tp = (PyObject*)Py_TYPE(result);
    Py_INCREF((PyObject*)metaclass);
#if __PYX_LIMITED_VERSION_HEX >= 0x03090000
        Py_SET_TYPE(result, metaclass);
#else
        result->ob_type = metaclass;
#endif
        Py_DECREF(old_tp);
    }
    return result;
}
#else
#define __Pyx_PyType_FromMetaclass(me, mo, s, b) PyType_FromMetaclass(me, mo, s, b)
#endif
static int __Pyx_VerifyCachedType(PyObject *cached_type,
                               const char *name,
                               Py_ssize_t expected_basicsize) {
    Py_ssize_t basicsize;
    if (!PyType_Check(cached_type)) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s is not a type object", name);
        return -1;
    }
    if (expected_basicsize == 0) {
        return 0; // size is inherited, nothing useful to check
    }
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_basicsize;
    py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
    if (unlikely(!py_basicsize)) return -1;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = NULL;
    if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) return -1;
#else
    basicsize = ((PyTypeObject*) cached_type)->tp_basicsize;
#endif
    if (basicsize != expected_basicsize) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s has the wrong size, try recompiling",
            name);
        return -1;
    }
    return 0;
}
static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases) {
    PyObject *abi_module = NULL, *cached_type = NULL, *abi_module_dict, *new_cached_type, *py_object_name;
    int get_item_ref_result;
    const char* object_name = strrchr(spec->name, '.');
    object_name = object_name ? object_name+1 : spec->name;
    py_object_name = PyUnicode_FromString(object_name);
    if (!py_object_name) return NULL;
    abi_module = __Pyx_FetchSharedCythonABIModule();
    if (!abi_module) goto done;
    abi_module_dict = PyModule_GetDict(abi_module);
    if (!abi_module_dict) goto done;
    get_item_ref_result = __Pyx_PyDict_GetItemRef(abi_module_dict, py_object_name, &cached_type);
    if (get_item_ref_result == 1) {
        if (__Pyx_VerifyCachedType(
              cached_type,
              object_name,
              spec->basicsize) < 0) {
            goto bad;
        }
        goto done;
    } else if (unlikely(get_item_ref_result == -1)) {
        goto bad;
    }
    cached_type = __Pyx_PyType_FromMetaclass(
        metaclass,
        CYTHON_USE_MODULE_STATE ? module : abi_module,
        spec, bases);
    if (unlikely(!cached_type)) goto bad;
    if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
    new_cached_type = __Pyx_PyDict_SetDefault(abi_module_dict, py_object_name, cached_type);
    if (unlikely(new_cached_type != cached_type)) {
        if (unlikely(!new_cached_type)) goto bad;
        Py_DECREF(cached_type);
        cached_type = new_cached_type;
        if (__Pyx_VerifyCachedType(
                cached_type,
                object_name,
                spec->basicsize) < 0) {
            goto bad;
        }
        goto done;
    } else {
        Py_DECREF(new_cached_type);
    }
done:
    Py_XDECREF(abi_module);
    Py_DECREF(py_object_name);
    assert(cached_type == NULL || PyType_Check(cached_type));
    return (PyTypeObject *) cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}

/* CommonTypesMetaclass (used by CythonFunctionShared) */
static PyObject* __pyx_CommonTypesMetaclass_get_module(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED void* context) {
    return PyUnicode_FromString(__PYX_ABI_MODULE_NAME);
}
#if __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject* __pyx_CommonTypesMetaclass_call(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *args, CYTHON_UNUSED PyObject *kwds) {
    PyErr_SetString(PyExc_TypeError, "Cannot instantiate Cython internal types");
    return NULL;
}
static int __pyx_CommonTypesMetaclass_setattr(CYTHON_UNUSED PyObject *self, CYTHON_UNUSED PyObject *attr, CYTHON_UNUSED PyObject *value) {
    PyErr_SetString(PyExc_TypeError, "Cython internal types are immutable");
    return -1;
}
#endif
static PyGetSetDef __pyx_CommonTypesMetaclass_getset[] = {
    {"__module__", __pyx_CommonTypesMetaclass_get_module, NULL, NULL, NULL},
    {0, 0, 0, 0, 0}
};
static PyType_Slot __pyx_CommonTypesMetaclass_slots[] = {
    {Py_tp_getset, (void *)__pyx_CommonTypesMetaclass_getset},
    #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
    {Py_tp_call, (void*)__pyx_CommonTypesMetaclass_call},
    {Py_tp_new, (void*)__pyx_CommonTypesMetaclass_call},
    {Py_tp_setattro, (void*)__pyx_CommonTypesMetaclass_setattr},
    #endif
    {0, 0}
};
static PyType_Spec __pyx_CommonTypesMetaclass_spec = {
    __PYX_TYPE_MODULE_PREFIX "_common_types_metatype",
    0,
    0,
    Py_TPFLAGS_IMMUTABLETYPE |
    Py_TPFLAGS_DISALLOW_INSTANTIATION |
    Py_TPFLAGS_DEFAULT,
    __pyx_CommonTypesMetaclass_slots
};
static int __pyx_CommonTypesMetaclass_init(PyObject *module) {
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
    PyObject *bases = PyTuple_Pack(1, &PyType_Type);
    if (unlikely(!bases)) {
        return -1;
    }
    mstate->__pyx_CommonTypesMetaclassType = __Pyx_FetchCommonTypeFromSpec(NULL, module, &__pyx_CommonTypesMetaclass_spec, bases);
    Py_DECREF(bases);
    if (unlikely(mstate->__pyx_CommonTypesMetaclassType == NULL)) {
        return -1;
    }
    return 0;
}

/* PyMethodNew (used by CythonFunctionShared) */
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    PyObject *result;
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    #if __PYX_LIMITED_VERSION_HEX >= 0x030C0000
    {
        PyObject *args[] = {func, self};
        result = PyObject_Vectorcall(__pyx_mstate_global->__Pyx_CachedMethodType, args, 2, NULL);
    }
    #else
    result = PyObject_CallFunctionObjArgs(__pyx_mstate_global->__Pyx_CachedMethodType, func, self, NULL);
    #endif
    return result;
}
#else
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    return PyMethod_New(func, self);
}
#endif

/* PyVectorcallFastCallDict (used by CythonFunctionShared) */
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    PyObject *res = NULL;
    PyObject *kwnames;
    PyObject **newargs;
    PyObject **kwvalues;
    Py_ssize_t i;
    #if CYTHON_AVOID_BORROWED_REFS
    PyObject *pos;
    #else
    Py_ssize_t pos;
    #endif
    size_t j;
    PyObject *key, *value;
    unsigned long keys_are_strings;
    #if !CYTHON_ASSUME_SAFE_SIZE
    Py_ssize_t nkw = PyDict_Size(kw);
    if (unlikely(nkw == -1)) return NULL;
    #else
    Py_ssize_t nkw = PyDict_GET_SIZE(kw);
    #endif
    newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
    if (unlikely(newargs == NULL)) {
        PyErr_NoMemory();
        return NULL;
    }
    for (j = 0; j < nargs; j++) newargs[j] = args[j];
    kwnames = PyTuple_New(nkw);
    if (unlikely(kwnames == NULL)) {
        PyMem_Free(newargs);
        return NULL;
    }
    kwvalues = newargs + nargs;
    pos = 0;
    i = 0;
    keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
    while (__Pyx_PyDict_NextRef(kw, &pos, &key, &value)) {
        keys_are_strings &=
        #if CYTHON_COMPILING_IN_LIMITED_API
            PyType_GetFlags(Py_TYPE(key));
        #else
            Py_TYPE(key)->tp_flags;
        #endif
        #if !CYTHON_ASSUME_SAFE_MACROS
        if (unlikely(PyTuple_SetItem(kwnames, i, key) < 0)) goto cleanup;
        #else
        PyTuple_SET_ITEM(kwnames, i, key);
        #endif
        kwvalues[i] = value;
        i++;
    }
    if (unlikely(!keys_are_strings)) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        goto cleanup;
    }
    res = vc(func, newargs, nargs, kwnames);
cleanup:
    #if CYTHON_AVOID_BORROWED_REFS
    Py_DECREF(pos);
    #endif
    Py_DECREF(kwnames);
    for (i = 0; i < nkw; i++)
        Py_DECREF(kwvalues[i]);
    PyMem_Free(newargs);
    return res;
}
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    Py_ssize_t kw_size =
        likely(kw == NULL) ?
        0 :
#if !CYTHON_ASSUME_SAFE_SIZE
        PyDict_Size(kw);
#else
        PyDict_GET_SIZE(kw);
#endif
    if (kw_size == 0) {
        return vc(func, args, nargs, NULL);
    }
#if !CYTHON_ASSUME_SAFE_SIZE
    else if (unlikely(kw_size == -1)) {
        return NULL;
    }
#endif
    return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
}
#endif

/* CythonFunctionShared (used by CythonFunction) */
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunctionNoMethod(PyObject *func, void (*cfunc)(void)) {
    if (__Pyx_CyFunction_Check(func)) {
        return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc;
    } else if (PyCFunction_Check(func)) {
        return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
    if ((PyObject*)Py_TYPE(func) == __pyx_mstate_global->__Pyx_CachedMethodType) {
        int result;
        PyObject *newFunc = PyObject_GetAttr(func, __pyx_mstate_global->__pyx_n_u_func_2);
        if (unlikely(!newFunc)) {
            PyErr_Clear(); // It's only an optimization, so don't throw an error
            return 0;
        }
        result = __Pyx__IsSameCyOrCFunctionNoMethod(newFunc, cfunc);
        Py_DECREF(newFunc);
        return result;
    }
    return __Pyx__IsSameCyOrCFunctionNoMethod(func, cfunc);
}
#else
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)) {
    if (PyMethod_Check(func)) {
        func = PyMethod_GET_FUNCTION(func);
    }
    return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
}
#endif
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_Py_XDECREF_SET(
        __Pyx_CyFunction_GetClassObj(f),
            ((classobj) ? __Pyx_NewRef(classobj) : NULL));
#else
    __Pyx_Py_XDECREF_SET(
        ((PyCMethodObject *) (f))->mm_class,
        (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
#endif
}
static PyObject *
__Pyx_CyFunction_get_doc_locked(__pyx_CyFunctionObject *op)
{
    if (unlikely(op->func_doc == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_doc = PyObject_GetAttrString(op->func, "__doc__");
        if (unlikely(!op->func_doc)) return NULL;
#else
        if (((PyCFunctionObject*)op)->m_ml->ml_doc) {
            op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
#endif
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure) {
    PyObject *result;
    CYTHON_UNUSED_VAR(closure);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_doc_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_doc, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name_locked(__pyx_CyFunctionObject *op)
{
    if (unlikely(op->func_name == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_name = PyObject_GetAttrString(op->func, "__name__");
#else
        op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context)
{
    PyObject *result = NULL;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_name_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_name, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    PyObject *result;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    Py_INCREF(op->func_qualname);
    result = op->func_qualname;
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(value == NULL || !PyUnicode_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_qualname, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
#endif
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(op);
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->defaults_tuple;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = NULL;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_defaults_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->defaults_kwdict;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_kwdefaults_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value || value == Py_None) {
        value = NULL;
    } else if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    __Pyx_Py_XDECREF_SET(op->func_annotations, value);
    __Pyx_END_CRITICAL_SECTION();
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations_locked(__pyx_CyFunctionObject *op) {
    PyObject* result = op->func_annotations;
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) {
    PyObject *result;
    CYTHON_UNUSED_VAR(context);
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    result = __Pyx_CyFunction_get_annotations_locked(op);
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static PyObject *
__Pyx_CyFunction_get_is_coroutine_value(__pyx_CyFunctionObject *op) {
    int is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
    if (is_coroutine) {
        PyObject *is_coroutine_value, *module, *fromlist, *marker = __pyx_mstate_global->__pyx_n_u_is_coroutine;
        fromlist = PyList_New(1);
        if (unlikely(!fromlist)) return NULL;
        Py_INCREF(marker);
#if CYTHON_ASSUME_SAFE_MACROS
        PyList_SET_ITEM(fromlist, 0, marker);
#else
        if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
            Py_DECREF(marker);
            Py_DECREF(fromlist);
            return NULL;
        }
#endif
        module = PyImport_ImportModuleLevelObject(__pyx_mstate_global->__pyx_n_u_asyncio_coroutines, NULL, NULL, fromlist, 0);
        Py_DECREF(fromlist);
        if (unlikely(!module)) goto ignore;
        is_coroutine_value = __Pyx_PyObject_GetAttrStr(module, marker);
        Py_DECREF(module);
        if (likely(is_coroutine_value)) {
            return is_coroutine_value;
        }
ignore:
        PyErr_Clear();
    }
    return __Pyx_PyBool_FromLong(is_coroutine);
}
static PyObject *
__Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) {
    PyObject *result;
    CYTHON_UNUSED_VAR(context);
    if (op->func_is_coroutine) {
        return __Pyx_NewRef(op->func_is_coroutine);
    }
    result = __Pyx_CyFunction_get_is_coroutine_value(op);
    if (unlikely(!result))
        return NULL;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    if (op->func_is_coroutine) {
        Py_DECREF(result);
        result = __Pyx_NewRef(op->func_is_coroutine);
    } else {
        op->func_is_coroutine = __Pyx_NewRef(result);
    }
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static void __Pyx_CyFunction_raise_argument_count_error(__pyx_CyFunctionObject *func, const char* message, Py_ssize_t size) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
    if (!py_name) return;
    PyErr_Format(PyExc_TypeError,
        "%.200S() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
        py_name, message, size);
    Py_DECREF(py_name);
#else
    const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
    PyErr_Format(PyExc_TypeError,
        "%.200s() %s (%" CYTHON_FORMAT_SSIZE_T "d given)",
        name, message, size);
#endif
}
static void __Pyx_CyFunction_raise_type_error(__pyx_CyFunctionObject *func, const char* message) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_name = __Pyx_CyFunction_get_name(func, NULL);
    if (!py_name) return;
    PyErr_Format(PyExc_TypeError,
        "%.200S() %s",
        py_name, message);
    Py_DECREF(py_name);
#else
    const char* name = ((PyCFunctionObject*)func)->m_ml->ml_name;
    PyErr_Format(PyExc_TypeError,
        "%.200s() %s",
        name, message);
#endif
}
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *
__Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_GetAttrString(op->func, "__module__");
}
static int
__Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_SetAttrString(op->func, "__module__", value);
}
#endif
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {"func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {"__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {"func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {"__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {"__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
    {"func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
    {"__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)PyObject_GenericSetDict, 0, 0},
#else
    {"func_dict", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
    {"__dict__", (getter)PyObject_GenericGetDict, (setter)PyObject_GenericSetDict, 0, 0},
#endif
    {"func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {"__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {"func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {"__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {"func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {"__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {"func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {"__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {"__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {"__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {"_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
#if !CYTHON_COMPILING_IN_LIMITED_API
    {"__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    {"__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0},
#endif
#if CYTHON_METH_FASTCALL
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0},
#else
    {"__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0},
#else
    {"__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
#endif
#endif
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args)
{
    PyObject *result = NULL;
    CYTHON_UNUSED_VAR(args);
    __Pyx_BEGIN_CRITICAL_SECTION(m);
    Py_INCREF(m->func_qualname);
    result = m->func_qualname;
    __Pyx_END_CRITICAL_SECTION();
    return result;
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
#if !CYTHON_COMPILING_IN_LIMITED_API
    PyCFunctionObject *cf = (PyCFunctionObject*) op;
#endif
    if (unlikely(op == NULL))
        return NULL;
#if CYTHON_COMPILING_IN_LIMITED_API
    op->func = PyCFunction_NewEx(ml, (PyObject*)op, module);
    if (unlikely(!op->func)) return NULL;
#endif
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
#if !CYTHON_COMPILING_IN_LIMITED_API
    cf->m_ml = ml;
    cf->m_self = (PyObject *) op;
#endif
    Py_XINCREF(closure);
    op->func_closure = closure;
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_XINCREF(module);
    cf->m_module = module;
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    op->func_dict = NULL;
#endif
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    op->func_classobj = NULL;
#else
    ((PyCMethodObject*)op)->mm_class = NULL;
#endif
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    op->func_is_coroutine = NULL;
#if CYTHON_METH_FASTCALL
    switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
    case METH_NOARGS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
        break;
    case METH_O:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
        break;
    case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
        break;
    case METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
        break;
    case METH_VARARGS | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = NULL;
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        Py_DECREF(op);
        return NULL;
    }
#endif
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_CLEAR(m->func);
#else
    Py_CLEAR(((PyCFunctionObject*)m)->m_module);
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    Py_CLEAR(m->func_dict);
#elif PY_VERSION_HEX < 0x030d0000
    _PyObject_ClearManagedDict((PyObject*)m);
#else
    PyObject_ClearManagedDict((PyObject*)m);
#endif
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
#if PY_VERSION_HEX < 0x030900B1
    Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
#else
    {
        PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
        ((PyCMethodObject *) (m))->mm_class = NULL;
        Py_XDECREF(cls);
    }
#endif
#endif
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    Py_CLEAR(m->func_is_coroutine);
    Py_CLEAR(m->defaults);
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    __Pyx_PyHeapTypeObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    {
        int e = __Pyx_call_type_traverse((PyObject*)m, 1, visit, arg);
        if (e) return e;
    }
    Py_VISIT(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(m->func);
#else
    Py_VISIT(((PyCFunctionObject*)m)->m_module);
#endif
#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(m->func_dict);
#else
    {
        int e =
#if PY_VERSION_HEX < 0x030d0000
            _PyObject_VisitManagedDict
#else
            PyObject_VisitManagedDict
#endif
                ((PyObject*)m, visit, arg);
        if (e != 0) return e;
    }
#endif
    __Pyx_VISIT_CONST(m->func_name);
    __Pyx_VISIT_CONST(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    __Pyx_VISIT_CONST(m->func_code);
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
#endif
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    Py_VISIT(m->func_is_coroutine);
    Py_VISIT(m->defaults);
    return 0;
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
    PyObject *repr;
    __Pyx_BEGIN_CRITICAL_SECTION(op);
    repr = PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
    __Pyx_END_CRITICAL_SECTION();
    return repr;
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *f = ((__pyx_CyFunctionObject*)func)->func;
    PyCFunction meth;
    int flags;
    meth = PyCFunction_GetFunction(f);
    if (unlikely(!meth)) return NULL;
    flags = PyCFunction_GetFlags(f);
    if (unlikely(flags < 0)) return NULL;
#else
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    int flags = f->m_ml->ml_flags;
#endif
    Py_ssize_t size;
    switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void(*)(void))meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_SIZE
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 0))
                return (*meth)(self, NULL);
            __Pyx_CyFunction_raise_argument_count_error(
                (__pyx_CyFunctionObject*)func,
                "takes no arguments", size);
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_SIZE
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
            __Pyx_CyFunction_raise_argument_count_error(
                (__pyx_CyFunctionObject*)func,
                "takes exactly one argument", size);
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        return NULL;
    }
    __Pyx_CyFunction_raise_type_error(
        (__pyx_CyFunctionObject*)func, "takes no keyword arguments");
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *self, *result;
#if CYTHON_COMPILING_IN_LIMITED_API
    self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func);
    if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
    self = ((PyCFunctionObject*)func)->m_self;
#endif
    result = __Pyx_CyFunction_CallMethod(func, self, arg, kw);
    return result;
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
     __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
    if (vc) {
#if CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE
        return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
#else
        (void) &__Pyx_PyVectorcall_FastCallDict;
        return PyVectorcall_Call(func, args, kw);
#endif
    }
#endif
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
#if CYTHON_ASSUME_SAFE_SIZE
        argc = PyTuple_GET_SIZE(args);
#else
        argc = PyTuple_Size(args);
        if (unlikely(argc < 0)) return NULL;
#endif
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
            PyErr_Format(PyExc_TypeError,
                         "unbound method %.200S() needs an argument",
                         cyfunc->func_qualname);
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
#if CYTHON_METH_FASTCALL && CYTHON_VECTORCALL
static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
{
    int ret = 0;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        if (unlikely(nargs < 1)) {
            __Pyx_CyFunction_raise_type_error(
                cyfunc, "needs an argument");
            return -1;
        }
        ret = 1;
    }
    if (unlikely(kwnames) && unlikely(__Pyx_PyTuple_GET_SIZE(kwnames))) {
        __Pyx_CyFunction_raise_type_error(
            cyfunc, "takes no keyword arguments");
        return -1;
    }
    return ret;
}
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 0)) {
        __Pyx_CyFunction_raise_argument_count_error(
            cyfunc, "takes no arguments", nargs);
        return NULL;
    }
    return meth(self, NULL);
}
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 1)) {
        __Pyx_CyFunction_raise_argument_count_error(
            cyfunc, "takes exactly one argument", nargs);
        return NULL;
    }
    return meth(self, args[0]);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))meth)(self, args, nargs, kwnames);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc);
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
    PyObject *self;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyCFunction meth = PyCFunction_GetFunction(cyfunc->func);
    if (unlikely(!meth)) return NULL;
#else
    PyCFunction meth = ((PyCFunctionObject*)cyfunc)->m_ml->ml_meth;
#endif
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
#if CYTHON_COMPILING_IN_LIMITED_API
        self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)cyfunc)->func);
        if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
        self = ((PyCFunctionObject*)cyfunc)->m_self;
#endif
        break;
    default:
        return NULL;
    }
    #if PY_VERSION_HEX < 0x030e00A6
    size_t nargs_value = (size_t) nargs;
    #else
    Py_ssize_t nargs_value = nargs;
    #endif
    return ((__Pyx_PyCMethod)(void(*)(void))meth)(self, cls, args, nargs_value, kwnames);
}
#endif
static PyType_Slot __pyx_CyFunctionType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
    {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
    {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
    {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
    {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
    {Py_tp_methods, (void *)__pyx_CyFunction_methods},
    {Py_tp_members, (void *)__pyx_CyFunction_members},
    {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
    {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
    {0, 0},
};
static PyType_Spec __pyx_CyFunctionType_spec = {
    __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
    Py_TPFLAGS_METHOD_DESCRIPTOR |
#endif
#if CYTHON_METH_FASTCALL
#if defined(Py_TPFLAGS_HAVE_VECTORCALL)
    Py_TPFLAGS_HAVE_VECTORCALL |
#elif defined(_Py_TPFLAGS_HAVE_VECTORCALL)
    _Py_TPFLAGS_HAVE_VECTORCALL |
#endif
#endif // CYTHON_METH_FASTCALL
#if PY_VERSION_HEX >= 0x030C0000 && !CYTHON_COMPILING_IN_LIMITED_API
    Py_TPFLAGS_MANAGED_DICT |
#endif
    Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION |
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    __pyx_CyFunctionType_slots
};
static int __pyx_CyFunction_init(PyObject *module) {
    __pyx_mstatetype *mstate = __Pyx_PyModule_GetState(module);
    mstate->__pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(
        mstate->__pyx_CommonTypesMetaclassType, module, &__pyx_CyFunctionType_spec, NULL);
    if (unlikely(mstate->__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, PyTypeObject *defaults_type) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_CallObject((PyObject*)defaults_type, NULL); // _PyObject_New(defaults_type);
    if (unlikely(!m->defaults))
        return NULL;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* CythonFunction */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    PyObject *op = __Pyx_CyFunction_Init(
        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_mstate_global->__pyx_CyFunctionType),
        ml, flags, qualname, closure, module, globals, code
    );
    if (likely(op)) {
        PyObject_GC_Track(op);
    }
    return op;
}

/* GetNameInClass */
static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name) {
    PyObject *result;
    PyObject *dict;
    assert(PyType_Check(nmspace));
#if CYTHON_USE_TYPE_SLOTS
    dict = ((PyTypeObject*)nmspace)->tp_dict;
    Py_XINCREF(dict);
#else
    dict = PyObject_GetAttr(nmspace, __pyx_mstate_global->__pyx_n_u_dict);
#endif
    if (likely(dict)) {
        result = PyObject_GetItem(dict, name);
        Py_DECREF(dict);
        if (result) {
            return result;
        }
    }
    PyErr_Clear();
    __Pyx_GetModuleGlobalNameUncached(result, name);
    return result;
}

/* Py3UpdateBases */
static PyObject*
__Pyx_PEP560_update_bases(PyObject *bases)
{
    Py_ssize_t i, j, size_bases;
    PyObject *base = NULL, *meth, *new_base, *result, *new_bases = NULL;
#if CYTHON_ASSUME_SAFE_SIZE
    size_bases = PyTuple_GET_SIZE(bases);
#else
    size_bases = PyTuple_Size(bases);
    if (size_bases < 0) return NULL;
#endif
    for (i = 0; i < size_bases; i++) {
#if CYTHON_AVOID_BORROWED_REFS
        Py_CLEAR(base);
#endif
#if CYTHON_ASSUME_SAFE_MACROS
        base = PyTuple_GET_ITEM(bases, i);
#else
        base = PyTuple_GetItem(bases, i);
        if (!base) goto error;
#endif
#if CYTHON_AVOID_BORROWED_REFS
        Py_INCREF(base);
#endif
        if (PyType_Check(base)) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        meth = __Pyx_PyObject_GetAttrStrNoError(base, __pyx_mstate_global->__pyx_n_u_mro_entries);
        if (!meth && PyErr_Occurred()) {
            goto error;
        }
        if (!meth) {
            if (new_bases) {
                if (PyList_Append(new_bases, base) < 0) {
                    goto error;
                }
            }
            continue;
        }
        new_base = __Pyx_PyObject_CallOneArg(meth, bases);
        Py_DECREF(meth);
        if (!new_base) {
            goto error;
        }
        if (!PyTuple_Check(new_base)) {
            PyErr_SetString(PyExc_TypeError,
                            "__mro_entries__ must return a tuple");
            Py_DECREF(new_base);
            goto error;
        }
        if (!new_bases) {
            if (!(new_bases = PyList_New(i))) {
                goto error;
            }
            for (j = 0; j < i; j++) {
                PyObject *base_from_list;
#if CYTHON_ASSUME_SAFE_MACROS
                base_from_list = PyTuple_GET_ITEM(bases, j);
                PyList_SET_ITEM(new_bases, j, base_from_list);
                Py_INCREF(base_from_list);
#else
                base_from_list = PyTuple_GetItem(bases, j);
                if (!base_from_list) goto error;
                Py_INCREF(base_from_list);
                if (PyList_SetItem(new_bases, j, base_from_list) < 0) goto error;
#endif
            }
        }
#if CYTHON_ASSUME_SAFE_SIZE
        j = PyList_GET_SIZE(new_bases);
#else
        j = PyList_Size(new_bases);
        if (j < 0) goto error;
#endif
        if (PyList_SetSlice(new_bases, j, j, new_base) < 0) {
            goto error;
        }
        Py_DECREF(new_base);
    }
    if (!new_bases) {
        Py_INCREF(bases);
        return bases;
    }
    result = PyList_AsTuple(new_bases);
    Py_DECREF(new_bases);
#if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(base);
#endif
    return result;
error:
    Py_XDECREF(new_bases);
#if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(base);
#endif
    return NULL;
}

/* CalculateMetaclass */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
    Py_ssize_t i, nbases;
#if CYTHON_ASSUME_SAFE_SIZE
    nbases = PyTuple_GET_SIZE(bases);
#else
    nbases = PyTuple_Size(bases);
    if (nbases < 0) return NULL;
#endif
    for (i=0; i < nbases; i++) {
        PyTypeObject *tmptype;
#if CYTHON_ASSUME_SAFE_MACROS
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *tmp = PyTuple_GetItem(bases, i);
        if (!tmp) return NULL;
#endif
        tmptype = Py_TYPE(tmp);
        if (!metaclass) {
            metaclass = tmptype;
            continue;
        }
        if (PyType_IsSubtype(metaclass, tmptype))
            continue;
        if (PyType_IsSubtype(tmptype, metaclass)) {
            metaclass = tmptype;
            continue;
        }
        PyErr_SetString(PyExc_TypeError,
                        "metaclass conflict: "
                        "the metaclass of a derived class "
                        "must be a (non-strict) subclass "
                        "of the metaclasses of all its bases");
        return NULL;
    }
    if (!metaclass) {
        metaclass = &PyType_Type;
    }
    Py_INCREF((PyObject*) metaclass);
    return (PyObject*) metaclass;
}

/* PyObjectCall2Args (used by Py3ClassCreate) */
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args[3] = {NULL, arg1, arg2};
    return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* PyObjectLookupSpecial (used by Py3ClassCreate) */
#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) {
    PyObject *res;
    PyTypeObject *tp = Py_TYPE(obj);
    res = _PyType_Lookup(tp, attr_name);
    if (likely(res)) {
        descrgetfunc f = Py_TYPE(res)->tp_descr_get;
        if (!f) {
            Py_INCREF(res);
        } else {
            res = f(res, obj, (PyObject *)tp);
        }
    } else if (with_error) {
        PyErr_SetObject(PyExc_AttributeError, attr_name);
    }
    return res;
}
#endif

/* Py3ClassCreate */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
    PyObject *ns;
    if (metaclass) {
        PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_mstate_global->__pyx_n_u_prepare);
        if (prep) {
            PyObject *pargs[3] = {NULL, name, bases};
            ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
            Py_DECREF(prep);
        } else {
            if (unlikely(PyErr_Occurred()))
                return NULL;
            ns = PyDict_New();
        }
    } else {
        ns = PyDict_New();
    }
    if (unlikely(!ns))
        return NULL;
    if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_module, modname) < 0)) goto bad;
    if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_qualname, qualname) < 0)) goto bad;
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_doc, doc) < 0)) goto bad;
    return ns;
bad:
    Py_DECREF(ns);
    return NULL;
}
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
                                      PyObject *dict, PyObject *mkw,
                                      int calculate_metaclass, int allow_py2_metaclass) {
    PyObject *result;
    PyObject *owned_metaclass = NULL;
    PyObject *margs[4] = {NULL, name, bases, dict};
    if (allow_py2_metaclass) {
        owned_metaclass = PyObject_GetItem(dict, __pyx_mstate_global->__pyx_n_u_metaclass);
        if (owned_metaclass) {
            metaclass = owned_metaclass;
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
            PyErr_Clear();
        } else {
            return NULL;
        }
    }
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
        Py_XDECREF(owned_metaclass);
        if (unlikely(!metaclass))
            return NULL;
        owned_metaclass = metaclass;
    }
    result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw);
    Py_XDECREF(owned_metaclass);
    return result;
}

/* CLineInTraceback (used by AddTraceback) */
#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
#define __Pyx_PyProbablyModule_GetDict(o) __Pyx_XNewRef(PyModule_GetDict(o))
#elif !CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
#define __Pyx_PyProbablyModule_GetDict(o) PyObject_GenericGetDict(o, NULL);
#else
PyObject* __Pyx_PyProbablyModule_GetDict(PyObject *o) {
    PyObject **dict_ptr = _PyObject_GetDictPtr(o);
    return dict_ptr ? __Pyx_XNewRef(*dict_ptr) : NULL;
}
#endif
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
    PyObject *use_cline = NULL;
    PyObject *ptype, *pvalue, *ptraceback;
    PyObject *cython_runtime_dict;
    CYTHON_MAYBE_UNUSED_VAR(tstate);
    if (unlikely(!__pyx_mstate_global->__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
    cython_runtime_dict = __Pyx_PyProbablyModule_GetDict(__pyx_mstate_global->__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, cython_runtime_dict,
            __Pyx_PyDict_SetDefault(cython_runtime_dict, __pyx_mstate_global->__pyx_n_u_cline_in_traceback, Py_False))
    }
    if (use_cline == NULL || use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    Py_XDECREF(use_cline);
    Py_XDECREF(cython_runtime_dict);
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache (used by AddTraceback) */
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static __Pyx_CachedCodeObjectType *__pyx__find_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line) {
    __Pyx_CachedCodeObjectType* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!code_cache->entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
    if (unlikely(pos >= code_cache->count) || unlikely(code_cache->entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = code_cache->entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line) {
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
    (void)__pyx__find_code_object;
    return NULL; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just miss.
#else
    struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_nonatomic_int_type old_count = __pyx_atomic_incr_acq_rel(&code_cache->accessor_count);
    if (old_count < 0) {
        __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
        return NULL;
    }
#endif
    __Pyx_CachedCodeObjectType *result = __pyx__find_code_object(code_cache, code_line);
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_decr_acq_rel(&code_cache->accessor_count);
#endif
    return result;
#endif
}
static void __pyx__insert_code_object(struct __Pyx_CodeObjectCache *code_cache, int code_line, __Pyx_CachedCodeObjectType* code_object)
{
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = code_cache->entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            code_cache->entries = entries;
            code_cache->max_count = 64;
            code_cache->count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(code_cache->entries, code_cache->count, code_line);
    if ((pos < code_cache->count) && unlikely(code_cache->entries[pos].code_line == code_line)) {
        __Pyx_CachedCodeObjectType* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_INCREF(code_object);
        Py_DECREF(tmp);
        return;
    }
    if (code_cache->count == code_cache->max_count) {
        int new_max = code_cache->max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            code_cache->entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        code_cache->entries = entries;
        code_cache->max_count = new_max;
    }
    for (i=code_cache->count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    code_cache->count++;
    Py_INCREF(code_object);
}
static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object) {
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && !CYTHON_ATOMICS
    (void)__pyx__insert_code_object;
    return; // Most implementation should have atomics. But otherwise, don't make it thread-safe, just fail.
#else
    struct __Pyx_CodeObjectCache *code_cache = &__pyx_mstate_global->__pyx_code_cache;
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_nonatomic_int_type expected = 0;
    if (!__pyx_atomic_int_cmp_exchange(&code_cache->accessor_count, &expected, INT_MIN)) {
        return;
    }
#endif
    __pyx__insert_code_object(code_cache, code_line, code_object);
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
    __pyx_atomic_sub(&code_cache->accessor_count, INT_MIN);
#endif
#endif
}

/* AddTraceback */
#include "compile.h"
#include "frameobject.h"
#include "traceback.h"
#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API && !defined(PYPY_VERSION)
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
                                                       PyObject *firstlineno, PyObject *name) {
    PyObject *replace = NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
    replace = PyObject_GetAttrString(code, "replace");
    if (likely(replace)) {
        PyObject *result = PyObject_Call(replace, __pyx_mstate_global->__pyx_empty_tuple, scratch_dict);
        Py_DECREF(replace);
        return result;
    }
    PyErr_Clear();
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
    PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
    PyObject *exc_type, *exc_value, *exc_traceback;
    int success = 0;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
    }
    PyErr_Fetch(&exc_type, &exc_value, &exc_traceback);
    code_object = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!code_object) {
        code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
        if (unlikely(!code_object)) goto bad;
        py_py_line = PyLong_FromLong(py_line);
        if (unlikely(!py_py_line)) goto bad;
        if (c_line) {
            py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        } else {
            py_funcname = PyUnicode_FromString(funcname);
        }
        if (unlikely(!py_funcname)) goto bad;
        dict = PyDict_New();
        if (unlikely(!dict)) goto bad;
        {
            PyObject *old_code_object = code_object;
            code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
            Py_DECREF(old_code_object);
        }
        if (unlikely(!code_object)) goto bad;
        __pyx_insert_code_object(c_line ? -c_line : py_line, code_object);
    } else {
        dict = PyDict_New();
    }
    getframe = PySys_GetObject("_getframe");
    if (unlikely(!getframe)) goto bad;
    if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
    frame = PyEval_EvalCode(code_object, dict, dict);
    if (unlikely(!frame) || frame == Py_None) goto bad;
    success = 1;
  bad:
    PyErr_Restore(exc_type, exc_value, exc_traceback);
    Py_XDECREF(code_object);
    Py_XDECREF(py_py_line);
    Py_XDECREF(py_funcname);
    Py_XDECREF(dict);
    Py_XDECREF(replace);
    if (success) {
        PyTraceBack_Here(
            (struct _frame*)frame);
    }
    Py_XDECREF(frame);
}
#else
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = NULL;
    PyObject *py_funcname = NULL;
    if (c_line) {
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        funcname = PyUnicode_AsUTF8(py_funcname);
        if (!funcname) goto bad;
    }
    py_code = PyCode_NewEmpty(filename, funcname, py_line);
    Py_XDECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_funcname);
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject *ptype, *pvalue, *ptraceback;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) {
            /* If the code object creation fails, then we should clear the
               fetched exception references and propagate the new exception */
            Py_XDECREF(ptype);
            Py_XDECREF(pvalue);
            Py_XDECREF(ptraceback);
            goto bad;
        }
        __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_mstate_global->__pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}
#endif

/* CheckUnpickleChecksum */
static void __Pyx_RaiseUnpickleChecksumError(long checksum, long checksum1, long checksum2, long checksum3, const char *members) {
    PyObject *pickle_module = PyImport_ImportModule("pickle");
    if (unlikely(!pickle_module)) return;
    PyObject *pickle_error = PyObject_GetAttrString(pickle_module, "PickleError");
    Py_DECREF(pickle_module);
    if (unlikely(!pickle_error)) return;
    if (checksum2 == checksum1) {
        PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x) = (%s))",
            checksum, checksum1, members);
    } else if (checksum3 == checksum2) {
        PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x, 0x%x) = (%s))",
            checksum, checksum1, checksum2, members);
    } else {
        PyErr_Format(pickle_error, "Incompatible checksums (0x%x vs (0x%x, 0x%x, 0x%x) = (%s))",
            checksum, checksum1, checksum2, checksum3, members);
    }
    Py_DECREF(pickle_error);
}
static int __Pyx_CheckUnpickleChecksum(long checksum, long checksum1, long checksum2, long checksum3, const char *members) {
    int found = 0;
    found |= checksum1 == checksum;
    found |= checksum2 == checksum;
    found |= checksum3 == checksum;
    if (likely(found))
        return 0;
    __Pyx_RaiseUnpickleChecksumError(checksum, checksum1, checksum2, checksum3, members);
    return -1;
}

/* CIntFromPyVerify */
#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum____arrow_3a__3a_compute_3a__3a_Function_3a__3a_Kind(enum  arrow::compute::Function::Kind value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum  arrow::compute::Function::Kind neg_one = (enum  arrow::compute::Function::Kind) -1, const_zero = (enum  arrow::compute::Function::Kind) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum  arrow::compute::Function::Kind) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum  arrow::compute::Function::Kind) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum  arrow::compute::Function::Kind) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum  arrow::compute::Function::Kind) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum  arrow::compute::Function::Kind) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum  arrow::compute::Function::Kind),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum  arrow::compute::Function::Kind));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_JoinOptions_3a__3a_NullHandlingBehavior(enum arrow::compute::JoinOptions::NullHandlingBehavior value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::JoinOptions::NullHandlingBehavior neg_one = (enum arrow::compute::JoinOptions::NullHandlingBehavior) -1, const_zero = (enum arrow::compute::JoinOptions::NullHandlingBehavior) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_FilterOptions_3a__3a_NullSelectionBehavior(enum arrow::compute::FilterOptions::NullSelectionBehavior value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::FilterOptions::NullSelectionBehavior neg_one = (enum arrow::compute::FilterOptions::NullSelectionBehavior) -1, const_zero = (enum arrow::compute::FilterOptions::NullSelectionBehavior) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_DictionaryEncodeOptions_3a__3a_NullEncodingBehavior(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior neg_one = (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) -1, const_zero = (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_CountOptions_3a__3a_CountMode(enum arrow::compute::CountOptions::CountMode value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::CountOptions::CountMode neg_one = (enum arrow::compute::CountOptions::CountMode) -1, const_zero = (enum arrow::compute::CountOptions::CountMode) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum arrow::compute::CountOptions::CountMode) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::CountOptions::CountMode) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum arrow::compute::CountOptions::CountMode) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum arrow::compute::CountOptions::CountMode) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::CountOptions::CountMode) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum arrow::compute::CountOptions::CountMode),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum arrow::compute::CountOptions::CountMode));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_MapLookupOptions_3a__3a_Occurrence(enum arrow::compute::MapLookupOptions::Occurrence value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::MapLookupOptions::Occurrence neg_one = (enum arrow::compute::MapLookupOptions::Occurrence) -1, const_zero = (enum arrow::compute::MapLookupOptions::Occurrence) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum arrow::compute::MapLookupOptions::Occurrence) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::MapLookupOptions::Occurrence) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum arrow::compute::MapLookupOptions::Occurrence) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum arrow::compute::MapLookupOptions::Occurrence) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::MapLookupOptions::Occurrence) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum arrow::compute::MapLookupOptions::Occurrence),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum arrow::compute::MapLookupOptions::Occurrence));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum____arrow_3a__3a_TimeUnit_3a__3a_type(enum  arrow::TimeUnit::type value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum  arrow::TimeUnit::type neg_one = (enum  arrow::TimeUnit::type) -1, const_zero = (enum  arrow::TimeUnit::type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum  arrow::TimeUnit::type) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum  arrow::TimeUnit::type) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum  arrow::TimeUnit::type) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum  arrow::TimeUnit::type) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum  arrow::TimeUnit::type) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum  arrow::TimeUnit::type),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum  arrow::TimeUnit::type));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Ambiguous(enum arrow::compute::AssumeTimezoneOptions::Ambiguous value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::AssumeTimezoneOptions::Ambiguous neg_one = (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) -1, const_zero = (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Nonexistent(enum arrow::compute::AssumeTimezoneOptions::Nonexistent value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::AssumeTimezoneOptions::Nonexistent neg_one = (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) -1, const_zero = (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_QuantileOptions_3a__3a_Interpolation(enum arrow::compute::QuantileOptions::Interpolation value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::QuantileOptions::Interpolation neg_one = (enum arrow::compute::QuantileOptions::Interpolation) -1, const_zero = (enum arrow::compute::QuantileOptions::Interpolation) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum arrow::compute::QuantileOptions::Interpolation) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::QuantileOptions::Interpolation) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum arrow::compute::QuantileOptions::Interpolation) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum arrow::compute::QuantileOptions::Interpolation) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::QuantileOptions::Interpolation) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum arrow::compute::QuantileOptions::Interpolation),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum arrow::compute::QuantileOptions::Interpolation));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_Utf8NormalizeOptions_3a__3a_Form(enum arrow::compute::Utf8NormalizeOptions::Form value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::Utf8NormalizeOptions::Form neg_one = (enum arrow::compute::Utf8NormalizeOptions::Form) -1, const_zero = (enum arrow::compute::Utf8NormalizeOptions::Form) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum arrow::compute::Utf8NormalizeOptions::Form),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum arrow::compute::Utf8NormalizeOptions::Form));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_enum__arrow_3a__3a_compute_3a__3a_RankOptions_3a__3a_Tiebreaker(enum arrow::compute::RankOptions::Tiebreaker value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::RankOptions::Tiebreaker neg_one = (enum arrow::compute::RankOptions::Tiebreaker) -1, const_zero = (enum arrow::compute::RankOptions::Tiebreaker) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum arrow::compute::RankOptions::Tiebreaker) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::RankOptions::Tiebreaker) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(enum arrow::compute::RankOptions::Tiebreaker) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum arrow::compute::RankOptions::Tiebreaker) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(enum arrow::compute::RankOptions::Tiebreaker) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(enum arrow::compute::RankOptions::Tiebreaker),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(enum arrow::compute::RankOptions::Tiebreaker));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        int val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyLong_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (int) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(int) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(int) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
        } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        int val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (int) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (int) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (int) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (int) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((int) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((int) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (int) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntFromPy */
static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        long val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyLong_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (long) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(long) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(long) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
        } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        long val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (long) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (long) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (long) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (long) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((long) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((long) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (long) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
static CYTHON_INLINE int64_t __Pyx_PyLong_As_int64_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int64_t neg_one = (int64_t) -1, const_zero = (int64_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        int64_t val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (int64_t) -1;
        val = __Pyx_PyLong_As_int64_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int64_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(int64_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int64_t) >= 2 * PyLong_SHIFT)) {
                            return (int64_t) (((((int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int64_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int64_t) >= 3 * PyLong_SHIFT)) {
                            return (int64_t) (((((((int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int64_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int64_t) >= 4 * PyLong_SHIFT)) {
                            return (int64_t) (((((((((int64_t)digits[3]) << PyLong_SHIFT) | (int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (int64_t) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(int64_t) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int64_t, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(int64_t) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int64_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(int64_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(int64_t) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (int64_t) (((int64_t)-1)*(((((int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(int64_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (int64_t) ((((((int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (int64_t) (((int64_t)-1)*(((((((int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(int64_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (int64_t) ((((((((int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int64_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (int64_t) (((int64_t)-1)*(((((((((int64_t)digits[3]) << PyLong_SHIFT) | (int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(int64_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(int64_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (int64_t) ((((((((((int64_t)digits[3]) << PyLong_SHIFT) | (int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(int64_t) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(int64_t, long, PyLong_AsLong(x))
        } else if ((sizeof(int64_t) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(int64_t, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        int64_t val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (int64_t) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (int64_t) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (int64_t) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (int64_t) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(int64_t) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((int64_t) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(int64_t) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((int64_t) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((int64_t) 1) << (sizeof(int64_t) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (int64_t) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int64_t");
    return (int64_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int64_t");
    return (int64_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum arrow::compute::JoinOptions::NullHandlingBehavior __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_JoinOptions_3a__3a_NullHandlingBehavior(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::JoinOptions::NullHandlingBehavior neg_one = (enum arrow::compute::JoinOptions::NullHandlingBehavior) -1, const_zero = (enum arrow::compute::JoinOptions::NullHandlingBehavior) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum arrow::compute::JoinOptions::NullHandlingBehavior val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum arrow::compute::JoinOptions::NullHandlingBehavior) -1;
        val = __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_JoinOptions_3a__3a_NullHandlingBehavior(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::JoinOptions::NullHandlingBehavior, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::JoinOptions::NullHandlingBehavior, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) >= 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::JoinOptions::NullHandlingBehavior) (((((enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::JoinOptions::NullHandlingBehavior, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) >= 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::JoinOptions::NullHandlingBehavior) (((((((enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::JoinOptions::NullHandlingBehavior, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) >= 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::JoinOptions::NullHandlingBehavior) (((((((((enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum arrow::compute::JoinOptions::NullHandlingBehavior) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::JoinOptions::NullHandlingBehavior, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::JoinOptions::NullHandlingBehavior, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::JoinOptions::NullHandlingBehavior, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::JoinOptions::NullHandlingBehavior, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::JoinOptions::NullHandlingBehavior) (((enum arrow::compute::JoinOptions::NullHandlingBehavior)-1)*(((((enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::JoinOptions::NullHandlingBehavior, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::JoinOptions::NullHandlingBehavior) ((((((enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::JoinOptions::NullHandlingBehavior, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::JoinOptions::NullHandlingBehavior) (((enum arrow::compute::JoinOptions::NullHandlingBehavior)-1)*(((((((enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::JoinOptions::NullHandlingBehavior, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::JoinOptions::NullHandlingBehavior) ((((((((enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::JoinOptions::NullHandlingBehavior, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::JoinOptions::NullHandlingBehavior) (((enum arrow::compute::JoinOptions::NullHandlingBehavior)-1)*(((((((((enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::JoinOptions::NullHandlingBehavior, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::JoinOptions::NullHandlingBehavior) ((((((((((enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::JoinOptions::NullHandlingBehavior)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::JoinOptions::NullHandlingBehavior, long, PyLong_AsLong(x))
        } else if ((sizeof(enum arrow::compute::JoinOptions::NullHandlingBehavior) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::JoinOptions::NullHandlingBehavior, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        enum arrow::compute::JoinOptions::NullHandlingBehavior val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum arrow::compute::JoinOptions::NullHandlingBehavior) -1;
#endif
        if (unlikely(ret))
            return (enum arrow::compute::JoinOptions::NullHandlingBehavior) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum arrow::compute::JoinOptions::NullHandlingBehavior");
    return (enum arrow::compute::JoinOptions::NullHandlingBehavior) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum arrow::compute::JoinOptions::NullHandlingBehavior");
    return (enum arrow::compute::JoinOptions::NullHandlingBehavior) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum arrow::compute::FilterOptions::NullSelectionBehavior __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_FilterOptions_3a__3a_NullSelectionBehavior(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::FilterOptions::NullSelectionBehavior neg_one = (enum arrow::compute::FilterOptions::NullSelectionBehavior) -1, const_zero = (enum arrow::compute::FilterOptions::NullSelectionBehavior) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum arrow::compute::FilterOptions::NullSelectionBehavior val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum arrow::compute::FilterOptions::NullSelectionBehavior) -1;
        val = __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_FilterOptions_3a__3a_NullSelectionBehavior(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::FilterOptions::NullSelectionBehavior, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::FilterOptions::NullSelectionBehavior, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) >= 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::FilterOptions::NullSelectionBehavior) (((((enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::FilterOptions::NullSelectionBehavior, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) >= 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::FilterOptions::NullSelectionBehavior) (((((((enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::FilterOptions::NullSelectionBehavior, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) >= 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::FilterOptions::NullSelectionBehavior) (((((((((enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum arrow::compute::FilterOptions::NullSelectionBehavior) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::FilterOptions::NullSelectionBehavior, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::FilterOptions::NullSelectionBehavior, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::FilterOptions::NullSelectionBehavior, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::FilterOptions::NullSelectionBehavior, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::FilterOptions::NullSelectionBehavior) (((enum arrow::compute::FilterOptions::NullSelectionBehavior)-1)*(((((enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::FilterOptions::NullSelectionBehavior, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::FilterOptions::NullSelectionBehavior) ((((((enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::FilterOptions::NullSelectionBehavior, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::FilterOptions::NullSelectionBehavior) (((enum arrow::compute::FilterOptions::NullSelectionBehavior)-1)*(((((((enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::FilterOptions::NullSelectionBehavior, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::FilterOptions::NullSelectionBehavior) ((((((((enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::FilterOptions::NullSelectionBehavior, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::FilterOptions::NullSelectionBehavior) (((enum arrow::compute::FilterOptions::NullSelectionBehavior)-1)*(((((((((enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::FilterOptions::NullSelectionBehavior, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::FilterOptions::NullSelectionBehavior) ((((((((((enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::FilterOptions::NullSelectionBehavior)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::FilterOptions::NullSelectionBehavior, long, PyLong_AsLong(x))
        } else if ((sizeof(enum arrow::compute::FilterOptions::NullSelectionBehavior) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::FilterOptions::NullSelectionBehavior, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        enum arrow::compute::FilterOptions::NullSelectionBehavior val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum arrow::compute::FilterOptions::NullSelectionBehavior) -1;
#endif
        if (unlikely(ret))
            return (enum arrow::compute::FilterOptions::NullSelectionBehavior) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum arrow::compute::FilterOptions::NullSelectionBehavior");
    return (enum arrow::compute::FilterOptions::NullSelectionBehavior) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum arrow::compute::FilterOptions::NullSelectionBehavior");
    return (enum arrow::compute::FilterOptions::NullSelectionBehavior) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_DictionaryEncodeOptions_3a__3a_NullEncodingBehavior(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior neg_one = (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) -1, const_zero = (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) -1;
        val = __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_DictionaryEncodeOptions_3a__3a_NullEncodingBehavior(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) >= 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) (((((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) >= 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) (((((((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) >= 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) (((((((((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) (((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)-1)*(((((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) ((((((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) (((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)-1)*(((((((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) ((((((((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) (((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)-1)*(((((((((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) ((((((((((enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, long, PyLong_AsLong(x))
        } else if ((sizeof(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) -1;
#endif
        if (unlikely(ret))
            return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior");
    return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior");
    return (enum arrow::compute::DictionaryEncodeOptions::NullEncodingBehavior) -1;
}

/* CIntFromPy */
static CYTHON_INLINE uint32_t __Pyx_PyLong_As_uint32_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint32_t neg_one = (uint32_t) -1, const_zero = (uint32_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        uint32_t val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (uint32_t) -1;
        val = __Pyx_PyLong_As_uint32_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(uint32_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(uint32_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) >= 2 * PyLong_SHIFT)) {
                            return (uint32_t) (((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(uint32_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) >= 3 * PyLong_SHIFT)) {
                            return (uint32_t) (((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(uint32_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) >= 4 * PyLong_SHIFT)) {
                            return (uint32_t) (((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (uint32_t) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(uint32_t) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(uint32_t) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(uint32_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(uint32_t) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (uint32_t) (((uint32_t)-1)*(((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(uint32_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (uint32_t) ((((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (uint32_t) (((uint32_t)-1)*(((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(uint32_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (uint32_t) ((((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (uint32_t) (((uint32_t)-1)*(((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(uint32_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (uint32_t) ((((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(uint32_t) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint32_t, long, PyLong_AsLong(x))
        } else if ((sizeof(uint32_t) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint32_t, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        uint32_t val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (uint32_t) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (uint32_t) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (uint32_t) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (uint32_t) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(uint32_t) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((uint32_t) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(uint32_t) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((uint32_t) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((uint32_t) 1) << (sizeof(uint32_t) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (uint32_t) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to uint32_t");
    return (uint32_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to uint32_t");
    return (uint32_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum arrow::compute::CountOptions::CountMode __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_CountOptions_3a__3a_CountMode(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::CountOptions::CountMode neg_one = (enum arrow::compute::CountOptions::CountMode) -1, const_zero = (enum arrow::compute::CountOptions::CountMode) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum arrow::compute::CountOptions::CountMode val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum arrow::compute::CountOptions::CountMode) -1;
        val = __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_CountOptions_3a__3a_CountMode(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::CountOptions::CountMode, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::CountOptions::CountMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) >= 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::CountOptions::CountMode) (((((enum arrow::compute::CountOptions::CountMode)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::CountOptions::CountMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) >= 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::CountOptions::CountMode) (((((((enum arrow::compute::CountOptions::CountMode)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::CountOptions::CountMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) >= 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::CountOptions::CountMode) (((((((((enum arrow::compute::CountOptions::CountMode)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum arrow::compute::CountOptions::CountMode) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum arrow::compute::CountOptions::CountMode) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::CountOptions::CountMode, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(enum arrow::compute::CountOptions::CountMode) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::CountOptions::CountMode, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::CountOptions::CountMode, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::CountOptions::CountMode, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::CountOptions::CountMode) (((enum arrow::compute::CountOptions::CountMode)-1)*(((((enum arrow::compute::CountOptions::CountMode)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::CountOptions::CountMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::CountOptions::CountMode) ((((((enum arrow::compute::CountOptions::CountMode)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::CountOptions::CountMode, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::CountOptions::CountMode) (((enum arrow::compute::CountOptions::CountMode)-1)*(((((((enum arrow::compute::CountOptions::CountMode)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::CountOptions::CountMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::CountOptions::CountMode) ((((((((enum arrow::compute::CountOptions::CountMode)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::CountOptions::CountMode, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::CountOptions::CountMode) (((enum arrow::compute::CountOptions::CountMode)-1)*(((((((((enum arrow::compute::CountOptions::CountMode)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::CountOptions::CountMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::CountOptions::CountMode) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::CountOptions::CountMode) ((((((((((enum arrow::compute::CountOptions::CountMode)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::CountOptions::CountMode)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum arrow::compute::CountOptions::CountMode) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::CountOptions::CountMode, long, PyLong_AsLong(x))
        } else if ((sizeof(enum arrow::compute::CountOptions::CountMode) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::CountOptions::CountMode, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        enum arrow::compute::CountOptions::CountMode val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum arrow::compute::CountOptions::CountMode) -1;
#endif
        if (unlikely(ret))
            return (enum arrow::compute::CountOptions::CountMode) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum arrow::compute::CountOptions::CountMode");
    return (enum arrow::compute::CountOptions::CountMode) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum arrow::compute::CountOptions::CountMode");
    return (enum arrow::compute::CountOptions::CountMode) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum arrow::compute::MapLookupOptions::Occurrence __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_MapLookupOptions_3a__3a_Occurrence(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::MapLookupOptions::Occurrence neg_one = (enum arrow::compute::MapLookupOptions::Occurrence) -1, const_zero = (enum arrow::compute::MapLookupOptions::Occurrence) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum arrow::compute::MapLookupOptions::Occurrence val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum arrow::compute::MapLookupOptions::Occurrence) -1;
        val = __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_MapLookupOptions_3a__3a_Occurrence(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::MapLookupOptions::Occurrence, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::MapLookupOptions::Occurrence, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) >= 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::MapLookupOptions::Occurrence) (((((enum arrow::compute::MapLookupOptions::Occurrence)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::MapLookupOptions::Occurrence, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) >= 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::MapLookupOptions::Occurrence) (((((((enum arrow::compute::MapLookupOptions::Occurrence)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::MapLookupOptions::Occurrence, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) >= 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::MapLookupOptions::Occurrence) (((((((((enum arrow::compute::MapLookupOptions::Occurrence)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum arrow::compute::MapLookupOptions::Occurrence) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum arrow::compute::MapLookupOptions::Occurrence) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::MapLookupOptions::Occurrence, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(enum arrow::compute::MapLookupOptions::Occurrence) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::MapLookupOptions::Occurrence, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::MapLookupOptions::Occurrence, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::MapLookupOptions::Occurrence, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::MapLookupOptions::Occurrence) (((enum arrow::compute::MapLookupOptions::Occurrence)-1)*(((((enum arrow::compute::MapLookupOptions::Occurrence)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::MapLookupOptions::Occurrence, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::MapLookupOptions::Occurrence) ((((((enum arrow::compute::MapLookupOptions::Occurrence)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::MapLookupOptions::Occurrence, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::MapLookupOptions::Occurrence) (((enum arrow::compute::MapLookupOptions::Occurrence)-1)*(((((((enum arrow::compute::MapLookupOptions::Occurrence)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::MapLookupOptions::Occurrence, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::MapLookupOptions::Occurrence) ((((((((enum arrow::compute::MapLookupOptions::Occurrence)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::MapLookupOptions::Occurrence, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::MapLookupOptions::Occurrence) (((enum arrow::compute::MapLookupOptions::Occurrence)-1)*(((((((((enum arrow::compute::MapLookupOptions::Occurrence)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::MapLookupOptions::Occurrence, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::MapLookupOptions::Occurrence) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::MapLookupOptions::Occurrence) ((((((((((enum arrow::compute::MapLookupOptions::Occurrence)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::MapLookupOptions::Occurrence)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum arrow::compute::MapLookupOptions::Occurrence) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::MapLookupOptions::Occurrence, long, PyLong_AsLong(x))
        } else if ((sizeof(enum arrow::compute::MapLookupOptions::Occurrence) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::MapLookupOptions::Occurrence, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        enum arrow::compute::MapLookupOptions::Occurrence val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum arrow::compute::MapLookupOptions::Occurrence) -1;
#endif
        if (unlikely(ret))
            return (enum arrow::compute::MapLookupOptions::Occurrence) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum arrow::compute::MapLookupOptions::Occurrence");
    return (enum arrow::compute::MapLookupOptions::Occurrence) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum arrow::compute::MapLookupOptions::Occurrence");
    return (enum arrow::compute::MapLookupOptions::Occurrence) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum  arrow::TimeUnit::type __Pyx_PyLong_As_enum____arrow_3a__3a_TimeUnit_3a__3a_type(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum  arrow::TimeUnit::type neg_one = (enum  arrow::TimeUnit::type) -1, const_zero = (enum  arrow::TimeUnit::type) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum  arrow::TimeUnit::type val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum  arrow::TimeUnit::type) -1;
        val = __Pyx_PyLong_As_enum____arrow_3a__3a_TimeUnit_3a__3a_type(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum  arrow::TimeUnit::type, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum  arrow::TimeUnit::type) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum  arrow::TimeUnit::type, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum  arrow::TimeUnit::type) >= 2 * PyLong_SHIFT)) {
                            return (enum  arrow::TimeUnit::type) (((((enum  arrow::TimeUnit::type)digits[1]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum  arrow::TimeUnit::type) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum  arrow::TimeUnit::type, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum  arrow::TimeUnit::type) >= 3 * PyLong_SHIFT)) {
                            return (enum  arrow::TimeUnit::type) (((((((enum  arrow::TimeUnit::type)digits[2]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[1]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum  arrow::TimeUnit::type) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum  arrow::TimeUnit::type, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum  arrow::TimeUnit::type) >= 4 * PyLong_SHIFT)) {
                            return (enum  arrow::TimeUnit::type) (((((((((enum  arrow::TimeUnit::type)digits[3]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[2]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[1]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum  arrow::TimeUnit::type) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum  arrow::TimeUnit::type) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum  arrow::TimeUnit::type, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(enum  arrow::TimeUnit::type) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum  arrow::TimeUnit::type, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum  arrow::TimeUnit::type, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum  arrow::TimeUnit::type) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum  arrow::TimeUnit::type, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum  arrow::TimeUnit::type) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum  arrow::TimeUnit::type) (((enum  arrow::TimeUnit::type)-1)*(((((enum  arrow::TimeUnit::type)digits[1]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum  arrow::TimeUnit::type) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum  arrow::TimeUnit::type, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum  arrow::TimeUnit::type) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum  arrow::TimeUnit::type) ((((((enum  arrow::TimeUnit::type)digits[1]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum  arrow::TimeUnit::type) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum  arrow::TimeUnit::type, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum  arrow::TimeUnit::type) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum  arrow::TimeUnit::type) (((enum  arrow::TimeUnit::type)-1)*(((((((enum  arrow::TimeUnit::type)digits[2]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[1]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum  arrow::TimeUnit::type) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum  arrow::TimeUnit::type, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum  arrow::TimeUnit::type) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum  arrow::TimeUnit::type) ((((((((enum  arrow::TimeUnit::type)digits[2]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[1]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum  arrow::TimeUnit::type) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum  arrow::TimeUnit::type, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum  arrow::TimeUnit::type) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum  arrow::TimeUnit::type) (((enum  arrow::TimeUnit::type)-1)*(((((((((enum  arrow::TimeUnit::type)digits[3]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[2]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[1]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum  arrow::TimeUnit::type) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum  arrow::TimeUnit::type, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum  arrow::TimeUnit::type) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum  arrow::TimeUnit::type) ((((((((((enum  arrow::TimeUnit::type)digits[3]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[2]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[1]) << PyLong_SHIFT) | (enum  arrow::TimeUnit::type)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum  arrow::TimeUnit::type) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum  arrow::TimeUnit::type, long, PyLong_AsLong(x))
        } else if ((sizeof(enum  arrow::TimeUnit::type) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum  arrow::TimeUnit::type, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        enum  arrow::TimeUnit::type val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum  arrow::TimeUnit::type) -1;
#endif
        if (unlikely(ret))
            return (enum  arrow::TimeUnit::type) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum  arrow::TimeUnit::type");
    return (enum  arrow::TimeUnit::type) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum  arrow::TimeUnit::type");
    return (enum  arrow::TimeUnit::type) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum arrow::compute::AssumeTimezoneOptions::Ambiguous __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Ambiguous(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::AssumeTimezoneOptions::Ambiguous neg_one = (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) -1, const_zero = (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum arrow::compute::AssumeTimezoneOptions::Ambiguous val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) -1;
        val = __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Ambiguous(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) >= 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) (((((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) >= 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) (((((((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) >= 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) (((((((((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) (((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)-1)*(((((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) ((((((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) (((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)-1)*(((((((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) ((((((((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) (((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)-1)*(((((((((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) ((((((((((enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Ambiguous)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, long, PyLong_AsLong(x))
        } else if ((sizeof(enum arrow::compute::AssumeTimezoneOptions::Ambiguous) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::AssumeTimezoneOptions::Ambiguous, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        enum arrow::compute::AssumeTimezoneOptions::Ambiguous val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) -1;
#endif
        if (unlikely(ret))
            return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum arrow::compute::AssumeTimezoneOptions::Ambiguous");
    return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum arrow::compute::AssumeTimezoneOptions::Ambiguous");
    return (enum arrow::compute::AssumeTimezoneOptions::Ambiguous) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum arrow::compute::AssumeTimezoneOptions::Nonexistent __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Nonexistent(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::AssumeTimezoneOptions::Nonexistent neg_one = (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) -1, const_zero = (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum arrow::compute::AssumeTimezoneOptions::Nonexistent val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) -1;
        val = __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_AssumeTimezoneOptions_3a__3a_Nonexistent(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) >= 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) (((((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) >= 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) (((((((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) >= 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) (((((((((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) (((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)-1)*(((((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) ((((((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) (((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)-1)*(((((((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) ((((((((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) (((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)-1)*(((((((((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) ((((((((((enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::AssumeTimezoneOptions::Nonexistent)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, long, PyLong_AsLong(x))
        } else if ((sizeof(enum arrow::compute::AssumeTimezoneOptions::Nonexistent) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::AssumeTimezoneOptions::Nonexistent, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        enum arrow::compute::AssumeTimezoneOptions::Nonexistent val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) -1;
#endif
        if (unlikely(ret))
            return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum arrow::compute::AssumeTimezoneOptions::Nonexistent");
    return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum arrow::compute::AssumeTimezoneOptions::Nonexistent");
    return (enum arrow::compute::AssumeTimezoneOptions::Nonexistent) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum arrow::compute::QuantileOptions::Interpolation __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_QuantileOptions_3a__3a_Interpolation(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::QuantileOptions::Interpolation neg_one = (enum arrow::compute::QuantileOptions::Interpolation) -1, const_zero = (enum arrow::compute::QuantileOptions::Interpolation) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum arrow::compute::QuantileOptions::Interpolation val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum arrow::compute::QuantileOptions::Interpolation) -1;
        val = __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_QuantileOptions_3a__3a_Interpolation(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::QuantileOptions::Interpolation, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::QuantileOptions::Interpolation, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) >= 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::QuantileOptions::Interpolation) (((((enum arrow::compute::QuantileOptions::Interpolation)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::QuantileOptions::Interpolation, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) >= 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::QuantileOptions::Interpolation) (((((((enum arrow::compute::QuantileOptions::Interpolation)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::QuantileOptions::Interpolation, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) >= 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::QuantileOptions::Interpolation) (((((((((enum arrow::compute::QuantileOptions::Interpolation)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum arrow::compute::QuantileOptions::Interpolation) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum arrow::compute::QuantileOptions::Interpolation) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::QuantileOptions::Interpolation, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(enum arrow::compute::QuantileOptions::Interpolation) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::QuantileOptions::Interpolation, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::QuantileOptions::Interpolation, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::QuantileOptions::Interpolation, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::QuantileOptions::Interpolation) (((enum arrow::compute::QuantileOptions::Interpolation)-1)*(((((enum arrow::compute::QuantileOptions::Interpolation)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::QuantileOptions::Interpolation, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::QuantileOptions::Interpolation) ((((((enum arrow::compute::QuantileOptions::Interpolation)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::QuantileOptions::Interpolation, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::QuantileOptions::Interpolation) (((enum arrow::compute::QuantileOptions::Interpolation)-1)*(((((((enum arrow::compute::QuantileOptions::Interpolation)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::QuantileOptions::Interpolation, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::QuantileOptions::Interpolation) ((((((((enum arrow::compute::QuantileOptions::Interpolation)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::QuantileOptions::Interpolation, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::QuantileOptions::Interpolation) (((enum arrow::compute::QuantileOptions::Interpolation)-1)*(((((((((enum arrow::compute::QuantileOptions::Interpolation)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::QuantileOptions::Interpolation, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::QuantileOptions::Interpolation) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::QuantileOptions::Interpolation) ((((((((((enum arrow::compute::QuantileOptions::Interpolation)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::QuantileOptions::Interpolation)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum arrow::compute::QuantileOptions::Interpolation) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::QuantileOptions::Interpolation, long, PyLong_AsLong(x))
        } else if ((sizeof(enum arrow::compute::QuantileOptions::Interpolation) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::QuantileOptions::Interpolation, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        enum arrow::compute::QuantileOptions::Interpolation val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum arrow::compute::QuantileOptions::Interpolation) -1;
#endif
        if (unlikely(ret))
            return (enum arrow::compute::QuantileOptions::Interpolation) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum arrow::compute::QuantileOptions::Interpolation");
    return (enum arrow::compute::QuantileOptions::Interpolation) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum arrow::compute::QuantileOptions::Interpolation");
    return (enum arrow::compute::QuantileOptions::Interpolation) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum arrow::compute::Utf8NormalizeOptions::Form __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_Utf8NormalizeOptions_3a__3a_Form(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::Utf8NormalizeOptions::Form neg_one = (enum arrow::compute::Utf8NormalizeOptions::Form) -1, const_zero = (enum arrow::compute::Utf8NormalizeOptions::Form) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum arrow::compute::Utf8NormalizeOptions::Form val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum arrow::compute::Utf8NormalizeOptions::Form) -1;
        val = __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_Utf8NormalizeOptions_3a__3a_Form(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::Utf8NormalizeOptions::Form, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::Utf8NormalizeOptions::Form, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) >= 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::Utf8NormalizeOptions::Form) (((((enum arrow::compute::Utf8NormalizeOptions::Form)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::Utf8NormalizeOptions::Form, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) >= 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::Utf8NormalizeOptions::Form) (((((((enum arrow::compute::Utf8NormalizeOptions::Form)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::Utf8NormalizeOptions::Form, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) >= 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::Utf8NormalizeOptions::Form) (((((((((enum arrow::compute::Utf8NormalizeOptions::Form)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum arrow::compute::Utf8NormalizeOptions::Form) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::Utf8NormalizeOptions::Form, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::Utf8NormalizeOptions::Form, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::Utf8NormalizeOptions::Form, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::Utf8NormalizeOptions::Form, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::Utf8NormalizeOptions::Form) (((enum arrow::compute::Utf8NormalizeOptions::Form)-1)*(((((enum arrow::compute::Utf8NormalizeOptions::Form)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::Utf8NormalizeOptions::Form, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::Utf8NormalizeOptions::Form) ((((((enum arrow::compute::Utf8NormalizeOptions::Form)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::Utf8NormalizeOptions::Form, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::Utf8NormalizeOptions::Form) (((enum arrow::compute::Utf8NormalizeOptions::Form)-1)*(((((((enum arrow::compute::Utf8NormalizeOptions::Form)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::Utf8NormalizeOptions::Form, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::Utf8NormalizeOptions::Form) ((((((((enum arrow::compute::Utf8NormalizeOptions::Form)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::Utf8NormalizeOptions::Form, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::Utf8NormalizeOptions::Form) (((enum arrow::compute::Utf8NormalizeOptions::Form)-1)*(((((((((enum arrow::compute::Utf8NormalizeOptions::Form)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::Utf8NormalizeOptions::Form, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::Utf8NormalizeOptions::Form) ((((((((((enum arrow::compute::Utf8NormalizeOptions::Form)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::Utf8NormalizeOptions::Form)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::Utf8NormalizeOptions::Form, long, PyLong_AsLong(x))
        } else if ((sizeof(enum arrow::compute::Utf8NormalizeOptions::Form) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::Utf8NormalizeOptions::Form, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        enum arrow::compute::Utf8NormalizeOptions::Form val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum arrow::compute::Utf8NormalizeOptions::Form) -1;
#endif
        if (unlikely(ret))
            return (enum arrow::compute::Utf8NormalizeOptions::Form) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum arrow::compute::Utf8NormalizeOptions::Form");
    return (enum arrow::compute::Utf8NormalizeOptions::Form) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum arrow::compute::Utf8NormalizeOptions::Form");
    return (enum arrow::compute::Utf8NormalizeOptions::Form) -1;
}

/* CIntFromPy */
static CYTHON_INLINE uint64_t __Pyx_PyLong_As_uint64_t(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const uint64_t neg_one = (uint64_t) -1, const_zero = (uint64_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        uint64_t val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (uint64_t) -1;
        val = __Pyx_PyLong_As_uint64_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(uint64_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(uint64_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint64_t) >= 2 * PyLong_SHIFT)) {
                            return (uint64_t) (((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(uint64_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint64_t) >= 3 * PyLong_SHIFT)) {
                            return (uint64_t) (((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(uint64_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint64_t) >= 4 * PyLong_SHIFT)) {
                            return (uint64_t) (((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (uint64_t) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(uint64_t) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(uint64_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(uint64_t) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (uint64_t) (((uint64_t)-1)*(((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(uint64_t) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT)) {
                            return (uint64_t) ((((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (uint64_t) (((uint64_t)-1)*(((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(uint64_t) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT)) {
                            return (uint64_t) ((((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (uint64_t) (((uint64_t)-1)*(((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(uint64_t) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT)) {
                            return (uint64_t) ((((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(uint64_t) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint64_t, long, PyLong_AsLong(x))
        } else if ((sizeof(uint64_t) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(uint64_t, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        uint64_t val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyObject *v;
        PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
        int bits, remaining_bits, is_negative = 0;
        int chunk_size = (sizeof(long) < 8) ? 30 : 62;
        if (likely(PyLong_CheckExact(x))) {
            v = __Pyx_NewRef(x);
        } else {
            v = PyNumber_Long(x);
            if (unlikely(!v)) return (uint64_t) -1;
            assert(PyLong_CheckExact(v));
        }
        {
            int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
            if (unlikely(result < 0)) {
                Py_DECREF(v);
                return (uint64_t) -1;
            }
            is_negative = result == 1;
        }
        if (is_unsigned && unlikely(is_negative)) {
            Py_DECREF(v);
            goto raise_neg_overflow;
        } else if (is_negative) {
            stepval = PyNumber_Invert(v);
            Py_DECREF(v);
            if (unlikely(!stepval))
                return (uint64_t) -1;
        } else {
            stepval = v;
        }
        v = NULL;
        val = (uint64_t) 0;
        mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
        shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
        for (bits = 0; bits < (int) sizeof(uint64_t) * 8 - chunk_size; bits += chunk_size) {
            PyObject *tmp, *digit;
            long idigit;
            digit = PyNumber_And(stepval, mask);
            if (unlikely(!digit)) goto done;
            idigit = PyLong_AsLong(digit);
            Py_DECREF(digit);
            if (unlikely(idigit < 0)) goto done;
            val |= ((uint64_t) idigit) << bits;
            tmp = PyNumber_Rshift(stepval, shift);
            if (unlikely(!tmp)) goto done;
            Py_DECREF(stepval); stepval = tmp;
        }
        Py_DECREF(shift); shift = NULL;
        Py_DECREF(mask); mask = NULL;
        {
            long idigit = PyLong_AsLong(stepval);
            if (unlikely(idigit < 0)) goto done;
            remaining_bits = ((int) sizeof(uint64_t) * 8) - bits - (is_unsigned ? 0 : 1);
            if (unlikely(idigit >= (1L << remaining_bits)))
                goto raise_overflow;
            val |= ((uint64_t) idigit) << bits;
        }
        if (!is_unsigned) {
            if (unlikely(val & (((uint64_t) 1) << (sizeof(uint64_t) * 8 - 1))))
                goto raise_overflow;
            if (is_negative)
                val = ~val;
        }
        ret = 0;
    done:
        Py_XDECREF(shift);
        Py_XDECREF(mask);
        Py_XDECREF(stepval);
#endif
        if (unlikely(ret))
            return (uint64_t) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to uint64_t");
    return (uint64_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to uint64_t");
    return (uint64_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum arrow::compute::RankOptions::Tiebreaker __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_RankOptions_3a__3a_Tiebreaker(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const enum arrow::compute::RankOptions::Tiebreaker neg_one = (enum arrow::compute::RankOptions::Tiebreaker) -1, const_zero = (enum arrow::compute::RankOptions::Tiebreaker) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (unlikely(!PyLong_Check(x))) {
        enum arrow::compute::RankOptions::Tiebreaker val;
        PyObject *tmp = __Pyx_PyNumber_Long(x);
        if (!tmp) return (enum arrow::compute::RankOptions::Tiebreaker) -1;
        val = __Pyx_PyLong_As_enum__arrow_3a__3a_compute_3a__3a_RankOptions_3a__3a_Tiebreaker(tmp);
        Py_DECREF(tmp);
        return val;
    }
    if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
        if (unlikely(__Pyx_PyLong_IsNeg(x))) {
            goto raise_neg_overflow;
        } else if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::RankOptions::Tiebreaker, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_DigitCount(x)) {
                case 2:
                    if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::RankOptions::Tiebreaker, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) >= 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::RankOptions::Tiebreaker) (((((enum arrow::compute::RankOptions::Tiebreaker)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::RankOptions::Tiebreaker, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) >= 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::RankOptions::Tiebreaker) (((((((enum arrow::compute::RankOptions::Tiebreaker)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::RankOptions::Tiebreaker, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) >= 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::RankOptions::Tiebreaker) (((((((((enum arrow::compute::RankOptions::Tiebreaker)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[0]));
                        }
                    }
                    break;
            }
        }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
        if (unlikely(Py_SIZE(x) < 0)) {
            goto raise_neg_overflow;
        }
#else
        {
            int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
            if (unlikely(result < 0))
                return (enum arrow::compute::RankOptions::Tiebreaker) -1;
            if (unlikely(result == 1))
                goto raise_neg_overflow;
        }
#endif
        if ((sizeof(enum arrow::compute::RankOptions::Tiebreaker) <= sizeof(unsigned long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::RankOptions::Tiebreaker, unsigned long, PyLong_AsUnsignedLong(x))
        } else if ((sizeof(enum arrow::compute::RankOptions::Tiebreaker) <= sizeof(unsigned PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::RankOptions::Tiebreaker, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
        }
    } else {
#if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsCompact(x)) {
            __PYX_VERIFY_RETURN_INT(enum arrow::compute::RankOptions::Tiebreaker, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
        } else {
            const digit* digits = __Pyx_PyLong_Digits(x);
            assert(__Pyx_PyLong_DigitCount(x) > 1);
            switch (__Pyx_PyLong_SignedDigitCount(x)) {
                case -2:
                    if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) - 1 > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::RankOptions::Tiebreaker, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::RankOptions::Tiebreaker) (((enum arrow::compute::RankOptions::Tiebreaker)-1)*(((((enum arrow::compute::RankOptions::Tiebreaker)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) > 1 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::RankOptions::Tiebreaker, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) - 1 > 2 * PyLong_SHIFT)) {
                            return (enum arrow::compute::RankOptions::Tiebreaker) ((((((enum arrow::compute::RankOptions::Tiebreaker)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) - 1 > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::RankOptions::Tiebreaker, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::RankOptions::Tiebreaker) (((enum arrow::compute::RankOptions::Tiebreaker)-1)*(((((((enum arrow::compute::RankOptions::Tiebreaker)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) > 2 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::RankOptions::Tiebreaker, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) - 1 > 3 * PyLong_SHIFT)) {
                            return (enum arrow::compute::RankOptions::Tiebreaker) ((((((((enum arrow::compute::RankOptions::Tiebreaker)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) - 1 > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::RankOptions::Tiebreaker, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::RankOptions::Tiebreaker) (((enum arrow::compute::RankOptions::Tiebreaker)-1)*(((((((((enum arrow::compute::RankOptions::Tiebreaker)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) > 3 * PyLong_SHIFT)) {
                        if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                            __PYX_VERIFY_RETURN_INT(enum arrow::compute::RankOptions::Tiebreaker, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if ((8 * sizeof(enum arrow::compute::RankOptions::Tiebreaker) - 1 > 4 * PyLong_SHIFT)) {
                            return (enum arrow::compute::RankOptions::Tiebreaker) ((((((((((enum arrow::compute::RankOptions::Tiebreaker)digits[3]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[2]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[1]) << PyLong_SHIFT) | (enum arrow::compute::RankOptions::Tiebreaker)digits[0])));
                        }
                    }
                    break;
            }
        }
#endif
        if ((sizeof(enum arrow::compute::RankOptions::Tiebreaker) <= sizeof(long))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::RankOptions::Tiebreaker, long, PyLong_AsLong(x))
        } else if ((sizeof(enum arrow::compute::RankOptions::Tiebreaker) <= sizeof(PY_LONG_LONG))) {
            __PYX_VERIFY_RETURN_INT_EXC(enum arrow::compute::RankOptions::Tiebreaker, PY_LONG_LONG, PyLong_AsLongLong(x))
        }
    }
    {
        enum arrow::compute::RankOptions::Tiebreaker val;
        int ret = -1;
#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
        Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
            x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
        if (unlikely(bytes_copied == -1)) {
        } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
            goto raise_overflow;
        } else {
            ret = 0;
        }
#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
        int one = 1; int is_little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&val;
        ret = _PyLong_AsByteArray((PyLongObject *)x,
                                    bytes, sizeof(val),
                                    is_little, !is_unsigned);
#else
        PyErr_SetString(PyExc_RuntimeError,
                        "_PyLong_AsByteArray() or PyLong_AsNativeBytes() not available, cannot convert large enums");
        val = (enum arrow::compute::RankOptions::Tiebreaker) -1;
#endif
        if (unlikely(ret))
            return (enum arrow::compute::RankOptions::Tiebreaker) -1;
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum arrow::compute::RankOptions::Tiebreaker");
    return (enum arrow::compute::RankOptions::Tiebreaker) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum arrow::compute::RankOptions::Tiebreaker");
    return (enum arrow::compute::RankOptions::Tiebreaker) -1;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int64_t(int64_t value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int64_t neg_one = (int64_t) -1, const_zero = (int64_t) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int64_t) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(int64_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(int64_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int64_t) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(int64_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(int64_t),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int64_t));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* PyObjectCallMethod1 */
#if !(CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000)))
static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
    PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
    Py_DECREF(method);
    return result;
}
#endif
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
#if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || (!CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x03090000))
    PyObject *args[2] = {obj, arg};
    (void) __Pyx_PyObject_CallOneArg;
    (void) __Pyx_PyObject_Call2Args;
    return PyObject_VectorcallMethod(method_name, args, 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
#else
    PyObject *method = NULL, *result;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_Call2Args(method, obj, arg);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) return NULL;
    return __Pyx__PyObject_CallMethod1(method, arg);
#endif
}

/* UpdateUnpickledDict */
static int __Pyx__UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index) {
    PyObject *state_dict = __Pyx_PySequence_ITEM(state, index);
    if (unlikely(!state_dict)) {
        return -1;
    }
    int non_empty = PyObject_IsTrue(state_dict);
    if (non_empty == 0) {
        Py_DECREF(state_dict);
        return 0;
    } else if (unlikely(non_empty == -1)) {
        return -1;
    }
    PyObject *dict;
    #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000
    dict = PyObject_GetAttrString(obj, "__dict__");
    #else
    dict = PyObject_GenericGetDict(obj, NULL);
    #endif
    if (unlikely(!dict)) {
        Py_DECREF(state_dict);
        return -1;
    }
    int result;
    if (likely(PyDict_CheckExact(dict))) {
        result = PyDict_Update(dict, state_dict);
    } else {
        PyObject *obj_result = __Pyx_PyObject_CallMethod1(dict, __pyx_mstate_global->__pyx_n_u_update, state_dict);
        if (likely(obj_result)) {
            Py_DECREF(obj_result);
            result = 0;
        } else {
            result = -1;
        }
    }
    Py_DECREF(state_dict);
    Py_DECREF(dict);
    return result;
}
static int __Pyx_UpdateUnpickledDict(PyObject *obj, PyObject *state, Py_ssize_t index) {
    Py_ssize_t state_size = __Pyx_PyTuple_GET_SIZE(state);
    #if !CYTHON_ASSUME_SAFE_SIZE
    if (unlikely(state_size == -1)) return -1;
    #endif
    if (state_size <= index) {
        return 0;
    }
    return __Pyx__UpdateUnpickledDict(obj, state, index);
}

/* FormatTypeName */
#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000
static __Pyx_TypeName
__Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp)
{
    PyObject *module = NULL, *name = NULL, *result = NULL;
    #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
    name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
                                               __pyx_mstate_global->__pyx_n_u_qualname);
    #else
    name = PyType_GetQualName(tp);
    #endif
    if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) goto bad;
    module = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
                                               __pyx_mstate_global->__pyx_n_u_module);
    if (unlikely(module == NULL) || unlikely(!PyUnicode_Check(module))) goto bad;
    if (PyUnicode_CompareWithASCIIString(module, "builtins") == 0) {
        result = name;
        name = NULL;
        goto done;
    }
    result = PyUnicode_FromFormat("%U.%U", module, name);
    if (unlikely(result == NULL)) goto bad;
  done:
    Py_XDECREF(name);
    Py_XDECREF(module);
    return result;
  bad:
    PyErr_Clear();
    if (name) {
        result = name;
        name = NULL;
    } else {
        result = __Pyx_NewRef(__pyx_mstate_global->__pyx_kp_u__10);
    }
    goto done;
}
#endif

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#if !CYTHON_COMPILING_IN_PYPY
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyLong_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
        }
    }
    {
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
        if (is_unsigned) {
            return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
        } else {
            return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
        }
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        int one = 1; int little = (int)*(unsigned char *)&one;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
#else
        int one = 1; int little = (int)*(unsigned char *)&one;
        PyObject *from_bytes, *result = NULL, *kwds = NULL;
        PyObject *py_bytes = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        {
            PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str };
            if (!is_unsigned) {
                kwds = __Pyx_MakeVectorcallBuilderKwds(1);
                if (!kwds) goto limited_bad;
                if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad;
            }
            result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds);
        }
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* GetRuntimeVersion */
#if __PYX_LIMITED_VERSION_HEX < 0x030b0000
void __Pyx_init_runtime_version(void) {
    if (__Pyx_cached_runtime_version == 0) {
        const char* rt_version = Py_GetVersion();
        unsigned long version = 0;
        unsigned long factor = 0x01000000UL;
        unsigned int digit = 0;
        int i = 0;
        while (factor) {
            while ('0' <= rt_version[i] && rt_version[i] <= '9') {
                digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
                ++i;
            }
            version += factor * digit;
            if (rt_version[i] != '.')
                break;
            digit = 0;
            factor >>= 8;
            ++i;
        }
        __Pyx_cached_runtime_version = version;
    }
}
#endif
static unsigned long __Pyx_get_runtime_version(void) {
#if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
    return Py_Version & ~0xFFUL;
#else
    return __Pyx_cached_runtime_version;
#endif
}

/* CheckBinaryVersion */
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
    const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
    if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
        return 0;
    if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
        return 1;
    {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compile time Python version %d.%d "
                      "of module '%.100s' "
                      "%s "
                      "runtime version %d.%d",
                       (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
                       __Pyx_MODULE_NAME,
                       (allow_newer) ? "was newer than" : "does not match",
                       (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
       );
        return PyErr_WarnEx(NULL, message, 1);
    }
}

/* NewCodeObj */
#if CYTHON_COMPILING_IN_LIMITED_API
    static PyObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
                                       PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                       PyObject *fv, PyObject *cell, PyObject* fn,
                                       PyObject *name, int fline, PyObject *lnos) {
        PyObject *exception_table = NULL;
        PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
        #if __PYX_LIMITED_VERSION_HEX < 0x030b0000
        PyObject *version_info;
        PyObject *py_minor_version = NULL;
        #endif
        long minor_version = 0;
        PyObject *type, *value, *traceback;
        PyErr_Fetch(&type, &value, &traceback);
        #if __PYX_LIMITED_VERSION_HEX >= 0x030b0000
        minor_version = 11;
        #else
        if (!(version_info = PySys_GetObject("version_info"))) goto end;
        if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
        minor_version = PyLong_AsLong(py_minor_version);
        Py_DECREF(py_minor_version);
        if (minor_version == -1 && PyErr_Occurred()) goto end;
        #endif
        if (!(types_module = PyImport_ImportModule("types"))) goto end;
        if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
        if (minor_version <= 7) {
            (void)p;
            result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOOO", a, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else if (minor_version <= 10) {
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else {
            if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOOOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
        }
    end:
        Py_XDECREF(code_type);
        Py_XDECREF(exception_table);
        Py_XDECREF(types_module);
        if (type) {
            PyErr_Restore(type, value, traceback);
        }
        return result;
    }
#elif PY_VERSION_HEX >= 0x030B0000
  static PyCodeObject* __Pyx__PyCode_New(int a, int p, int k, int l, int s, int f,
                                         PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                         PyObject *fv, PyObject *cell, PyObject* fn,
                                         PyObject *name, int fline, PyObject *lnos) {
    PyCodeObject *result;
    result =
      #if PY_VERSION_HEX >= 0x030C0000
        PyUnstable_Code_NewWithPosOnlyArgs
      #else
        PyCode_NewWithPosOnlyArgs
      #endif
        (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, __pyx_mstate_global->__pyx_empty_bytes);
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030c00A1
    if (likely(result))
        result->_co_firsttraceable = 0;
    #endif
    return result;
  }
#elif !CYTHON_COMPILING_IN_PYPY
  #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx__PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
static PyObject* __Pyx_PyCode_New(
        const __Pyx_PyCode_New_function_description descr,
        PyObject * const *varnames,
        PyObject *filename,
        PyObject *funcname,
        PyObject *line_table,
        PyObject *tuple_dedup_map
) {
    PyObject *code_obj = NULL, *varnames_tuple_dedup = NULL, *code_bytes = NULL;
    Py_ssize_t var_count = (Py_ssize_t) descr.nlocals;
    PyObject *varnames_tuple = PyTuple_New(var_count);
    if (unlikely(!varnames_tuple)) return NULL;
    for (Py_ssize_t i=0; i < var_count; i++) {
        Py_INCREF(varnames[i]);
        if (__Pyx_PyTuple_SET_ITEM(varnames_tuple, i, varnames[i]) != (0)) goto done;
    }
    #if CYTHON_COMPILING_IN_LIMITED_API
    varnames_tuple_dedup = PyDict_GetItem(tuple_dedup_map, varnames_tuple);
    if (!varnames_tuple_dedup) {
        if (unlikely(PyDict_SetItem(tuple_dedup_map, varnames_tuple, varnames_tuple) < 0)) goto done;
        varnames_tuple_dedup = varnames_tuple;
    }
    #else
    varnames_tuple_dedup = PyDict_SetDefault(tuple_dedup_map, varnames_tuple, varnames_tuple);
    if (unlikely(!varnames_tuple_dedup)) goto done;
    #endif
    #if CYTHON_AVOID_BORROWED_REFS
    Py_INCREF(varnames_tuple_dedup);
    #endif
    if (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table != NULL && !CYTHON_COMPILING_IN_GRAAL) {
        Py_ssize_t line_table_length = __Pyx_PyBytes_GET_SIZE(line_table);
        #if !CYTHON_ASSUME_SAFE_SIZE
        if (unlikely(line_table_length == -1)) goto done;
        #endif
        Py_ssize_t code_len = (line_table_length * 2 + 4) & ~3LL;
        code_bytes = PyBytes_FromStringAndSize(NULL, code_len);
        if (unlikely(!code_bytes)) goto done;
        char* c_code_bytes = PyBytes_AsString(code_bytes);
        if (unlikely(!c_code_bytes)) goto done;
        memset(c_code_bytes, 0, (size_t) code_len);
    }
    code_obj = (PyObject*) __Pyx__PyCode_New(
        (int) descr.argcount,
        (int) descr.num_posonly_args,
        (int) descr.num_kwonly_args,
        (int) descr.nlocals,
        0,
        (int) descr.flags,
        code_bytes ? code_bytes : __pyx_mstate_global->__pyx_empty_bytes,
        __pyx_mstate_global->__pyx_empty_tuple,
        __pyx_mstate_global->__pyx_empty_tuple,
        varnames_tuple_dedup,
        __pyx_mstate_global->__pyx_empty_tuple,
        __pyx_mstate_global->__pyx_empty_tuple,
        filename,
        funcname,
        (int) descr.first_line,
        (__PYX_LIMITED_VERSION_HEX >= (0x030b0000) && line_table) ? line_table : __pyx_mstate_global->__pyx_empty_bytes
    );
done:
    Py_XDECREF(code_bytes);
    #if CYTHON_AVOID_BORROWED_REFS
    Py_XDECREF(varnames_tuple_dedup);
    #endif
    Py_DECREF(varnames_tuple);
    return code_obj;
}

/* DecompressString */
static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo) {
    PyObject *module = NULL, *decompress, *compressed_bytes, *decompressed;
    const char* module_name = algo == 3 ? "compression.zstd" : algo == 2 ? "bz2" : "zlib";
    PyObject *methodname = PyUnicode_FromString("decompress");
    if (unlikely(!methodname)) return NULL;
    #if __PYX_LIMITED_VERSION_HEX >= 0x030e0000
    if (algo == 3) {
        PyObject *fromlist = Py_BuildValue("[O]", methodname);
        if (unlikely(!fromlist)) goto bad;
        module = PyImport_ImportModuleLevel("compression.zstd", NULL, NULL, fromlist, 0);
        Py_DECREF(fromlist);
    } else
    #endif
        module = PyImport_ImportModule(module_name);
    if (unlikely(!module)) goto import_failed;
    decompress = PyObject_GetAttr(module, methodname);
    if (unlikely(!decompress)) goto import_failed;
    {
        #ifdef __cplusplus
            char *memview_bytes = const_cast<char*>(s);
        #else
            #if defined(__clang__)
              #pragma clang diagnostic push
              #pragma clang diagnostic ignored "-Wcast-qual"
            #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
              #pragma GCC diagnostic push
              #pragma GCC diagnostic ignored "-Wcast-qual"
            #endif
            char *memview_bytes = (char*) s;
            #if defined(__clang__)
              #pragma clang diagnostic pop
            #elif !defined(__INTEL_COMPILER) && defined(__GNUC__)
              #pragma GCC diagnostic pop
            #endif
        #endif
        #if CYTHON_COMPILING_IN_LIMITED_API && !defined(PyBUF_READ)
        int memview_flags = 0x100;
        #else
        int memview_flags = PyBUF_READ;
        #endif
        compressed_bytes = PyMemoryView_FromMemory(memview_bytes, length, memview_flags);
    }
    if (unlikely(!compressed_bytes)) {
        Py_DECREF(decompress);
        goto bad;
    }
    decompressed = PyObject_CallFunctionObjArgs(decompress, compressed_bytes, NULL);
    Py_DECREF(compressed_bytes);
    Py_DECREF(decompress);
    Py_DECREF(module);
    Py_DECREF(methodname);
    return decompressed;
import_failed:
    PyErr_Format(PyExc_ImportError,
        "Failed to import '%.20s.decompress' - cannot initialise module strings. "
        "String compression was configured with the C macro 'CYTHON_COMPRESS_STRINGS=%d'.",
        module_name, algo);
bad:
    Py_XDECREF(module);
    Py_DECREF(methodname);
    return NULL;
}

#include <string.h>
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
    size_t len = strlen(s);
    if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
        PyErr_SetString(PyExc_OverflowError, "byte string is too long");
        return -1;
    }
    return (Py_ssize_t) len;
}
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return PyByteArray_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if CYTHON_COMPILING_IN_LIMITED_API
    {
        const char* result;
        Py_ssize_t unicode_length;
        CYTHON_MAYBE_UNUSED_VAR(unicode_length); // only for __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        #if __PYX_LIMITED_VERSION_HEX < 0x030A0000
        if (unlikely(PyArg_Parse(o, "s#", &result, length) < 0)) return NULL;
        #else
        result = PyUnicode_AsUTF8AndSize(o, length);
        #endif
        #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        unicode_length = PyUnicode_GetLength(o);
        if (unlikely(unicode_length < 0)) return NULL;
        if (unlikely(unicode_length != *length)) {
            PyUnicode_AsASCIIString(o);
            return NULL;
        }
        #endif
        return result;
    }
#else
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
#endif
}
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_UTF8
    if (PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
    if (PyByteArray_Check(o)) {
#if (CYTHON_ASSUME_SAFE_SIZE && CYTHON_ASSUME_SAFE_MACROS) || (CYTHON_COMPILING_IN_PYPY && (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)))
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
#else
        *length = PyByteArray_Size(o);
        if (*length == -1) return NULL;
        return PyByteArray_AsString(o);
#endif
    } else
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_LongWrongResultType(PyObject* result) {
    __Pyx_TypeName result_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(result));
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ").  "
                "The ability to return an instance of a strict subclass of int is deprecated, "
                "and may be removed in a future version of Python.",
                result_type_name)) {
            __Pyx_DECREF_TypeName(result_type_name);
            Py_DECREF(result);
            return NULL;
        }
        __Pyx_DECREF_TypeName(result_type_name);
        return result;
    }
    PyErr_Format(PyExc_TypeError,
                 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ")",
                 result_type_name);
    __Pyx_DECREF_TypeName(result_type_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Long(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  PyObject *res = NULL;
  if (likely(PyLong_Check(x)))
      return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  if (likely(m && m->nb_int)) {
      res = m->nb_int(x);
  }
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
      res = PyNumber_Long(x);
  }
#endif
  if (likely(res)) {
      if (unlikely(!PyLong_CheckExact(res))) {
          return __Pyx_PyNumber_LongWrongResultType(res);
      }
  }
  else if (!PyErr_Occurred()) {
      PyErr_SetString(PyExc_TypeError,
                      "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(__Pyx_PyLong_IsCompact(b))) {
        return __Pyx_PyLong_CompactValue(b);
    } else {
      const digit* digits = __Pyx_PyLong_Digits(b);
      const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyLong_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
    return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
  } else {
    Py_ssize_t ival;
    PyObject *x;
    x = PyNumber_Index(o);
    if (!x) return -1;
    ival = PyLong_AsLong(x);
    Py_DECREF(x);
    return ival;
  }
}
static CYTHON_INLINE PyObject *__Pyx_Owned_Py_None(int b) {
    CYTHON_UNUSED_VAR(b);
    return __Pyx_NewRef(Py_None);
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return __Pyx_NewRef(b ? Py_True: Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyLong_FromSize_t(size_t ival) {
    return PyLong_FromSize_t(ival);
}


/* MultiPhaseInitModuleState */
#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE
#ifndef CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
#if (CYTHON_COMPILING_IN_LIMITED_API || PY_VERSION_HEX >= 0x030C0000)
  #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 1
#else
  #define CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE 0
#endif
#endif
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE && !CYTHON_ATOMICS
#error "Module state with PEP489 requires atomics. Currently that's one of\
 C11, C++11, gcc atomic intrinsics or MSVC atomic intrinsics"
#endif
#if !CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
#define __Pyx_ModuleStateLookup_Lock()
#define __Pyx_ModuleStateLookup_Unlock()
#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d0000
static PyMutex __Pyx_ModuleStateLookup_mutex = {0};
#define __Pyx_ModuleStateLookup_Lock() PyMutex_Lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() PyMutex_Unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(__cplusplus) && __cplusplus >= 201103L
#include <mutex>
static std::mutex __Pyx_ModuleStateLookup_mutex;
#define __Pyx_ModuleStateLookup_Lock() __Pyx_ModuleStateLookup_mutex.lock()
#define __Pyx_ModuleStateLookup_Unlock() __Pyx_ModuleStateLookup_mutex.unlock()
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201112L) && !defined(__STDC_NO_THREADS__)
#include <threads.h>
static mtx_t __Pyx_ModuleStateLookup_mutex;
static once_flag __Pyx_ModuleStateLookup_mutex_once_flag = ONCE_FLAG_INIT;
static void __Pyx_ModuleStateLookup_initialize_mutex(void) {
    mtx_init(&__Pyx_ModuleStateLookup_mutex, mtx_plain);
}
#define __Pyx_ModuleStateLookup_Lock()\
  call_once(&__Pyx_ModuleStateLookup_mutex_once_flag, __Pyx_ModuleStateLookup_initialize_mutex);\
  mtx_lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() mtx_unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(HAVE_PTHREAD_H)
#include <pthread.h>
static pthread_mutex_t __Pyx_ModuleStateLookup_mutex = PTHREAD_MUTEX_INITIALIZER;
#define __Pyx_ModuleStateLookup_Lock() pthread_mutex_lock(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() pthread_mutex_unlock(&__Pyx_ModuleStateLookup_mutex)
#elif defined(_WIN32)
#include <Windows.h>  // synchapi.h on its own doesn't work
static SRWLOCK __Pyx_ModuleStateLookup_mutex = SRWLOCK_INIT;
#define __Pyx_ModuleStateLookup_Lock() AcquireSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
#define __Pyx_ModuleStateLookup_Unlock() ReleaseSRWLockExclusive(&__Pyx_ModuleStateLookup_mutex)
#else
#error "No suitable lock available for CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE.\
 Requires C standard >= C11, or C++ standard >= C++11,\
 or pthreads, or the Windows 32 API, or Python >= 3.13."
#endif
typedef struct {
    int64_t id;
    PyObject *module;
} __Pyx_InterpreterIdAndModule;
typedef struct {
    char interpreter_id_as_index;
    Py_ssize_t count;
    Py_ssize_t allocated;
    __Pyx_InterpreterIdAndModule table[1];
} __Pyx_ModuleStateLookupData;
#define __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE 32
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static __pyx_atomic_int_type __Pyx_ModuleStateLookup_read_counter = 0;
#endif
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static __pyx_atomic_ptr_type __Pyx_ModuleStateLookup_data = 0;
#else
static __Pyx_ModuleStateLookupData* __Pyx_ModuleStateLookup_data = NULL;
#endif
static __Pyx_InterpreterIdAndModule* __Pyx_State_FindModuleStateLookupTableLowerBound(
        __Pyx_InterpreterIdAndModule* table,
        Py_ssize_t count,
        int64_t interpreterId) {
    __Pyx_InterpreterIdAndModule* begin = table;
    __Pyx_InterpreterIdAndModule* end = begin + count;
    if (begin->id == interpreterId) {
        return begin;
    }
    while ((end - begin) > __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
        __Pyx_InterpreterIdAndModule* halfway = begin + (end - begin)/2;
        if (halfway->id == interpreterId) {
            return halfway;
        }
        if (halfway->id < interpreterId) {
            begin = halfway;
        } else {
            end = halfway;
        }
    }
    for (; begin < end; ++begin) {
        if (begin->id >= interpreterId) return begin;
    }
    return begin;
}
static PyObject *__Pyx_State_FindModule(CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return NULL;
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData* data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
    {
        __pyx_atomic_incr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
        if (likely(data)) {
            __Pyx_ModuleStateLookupData* new_data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_acquire(&__Pyx_ModuleStateLookup_data);
            if (likely(data == new_data)) {
                goto read_finished;
            }
        }
        __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
        __Pyx_ModuleStateLookup_Lock();
        __pyx_atomic_incr_relaxed(&__Pyx_ModuleStateLookup_read_counter);
        data = (__Pyx_ModuleStateLookupData*)__pyx_atomic_pointer_load_relaxed(&__Pyx_ModuleStateLookup_data);
        __Pyx_ModuleStateLookup_Unlock();
    }
  read_finished:;
#else
    __Pyx_ModuleStateLookupData* data = __Pyx_ModuleStateLookup_data;
#endif
    __Pyx_InterpreterIdAndModule* found = NULL;
    if (unlikely(!data)) goto end;
    if (data->interpreter_id_as_index) {
        if (interpreter_id < data->count) {
            found = data->table+interpreter_id;
        }
    } else {
        found = __Pyx_State_FindModuleStateLookupTableLowerBound(
            data->table, data->count, interpreter_id);
    }
  end:
    {
        PyObject *result=NULL;
        if (found && found->id == interpreter_id) {
            result = found->module;
        }
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
        __pyx_atomic_decr_acq_rel(&__Pyx_ModuleStateLookup_read_counter);
#endif
        return result;
    }
}
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
static void __Pyx_ModuleStateLookup_wait_until_no_readers(void) {
    while (__pyx_atomic_load(&__Pyx_ModuleStateLookup_read_counter) != 0);
}
#else
#define __Pyx_ModuleStateLookup_wait_until_no_readers()
#endif
static int __Pyx_State_AddModuleInterpIdAsIndex(__Pyx_ModuleStateLookupData **old_data, PyObject* module, int64_t interpreter_id) {
    Py_ssize_t to_allocate = (*old_data)->allocated;
    while (to_allocate <= interpreter_id) {
        if (to_allocate == 0) to_allocate = 1;
        else to_allocate *= 2;
    }
    __Pyx_ModuleStateLookupData *new_data = *old_data;
    if (to_allocate != (*old_data)->allocated) {
         new_data = (__Pyx_ModuleStateLookupData *)realloc(
            *old_data,
            sizeof(__Pyx_ModuleStateLookupData)+(to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
        if (!new_data) {
            PyErr_NoMemory();
            return -1;
        }
        for (Py_ssize_t i = new_data->allocated; i < to_allocate; ++i) {
            new_data->table[i].id = i;
            new_data->table[i].module = NULL;
        }
        new_data->allocated = to_allocate;
    }
    new_data->table[interpreter_id].module = module;
    if (new_data->count < interpreter_id+1) {
        new_data->count = interpreter_id+1;
    }
    *old_data = new_data;
    return 0;
}
static void __Pyx_State_ConvertFromInterpIdAsIndex(__Pyx_ModuleStateLookupData *data) {
    __Pyx_InterpreterIdAndModule *read = data->table;
    __Pyx_InterpreterIdAndModule *write = data->table;
    __Pyx_InterpreterIdAndModule *end = read + data->count;
    for (; read<end; ++read) {
        if (read->module) {
            write->id = read->id;
            write->module = read->module;
            ++write;
        }
    }
    data->count = write - data->table;
    for (; write<end; ++write) {
        write->id = 0;
        write->module = NULL;
    }
    data->interpreter_id_as_index = 0;
}
static int __Pyx_State_AddModule(PyObject* module, CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return -1;
    int result = 0;
    __Pyx_ModuleStateLookup_Lock();
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData *old_data = (__Pyx_ModuleStateLookupData *)
            __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
#else
    __Pyx_ModuleStateLookupData *old_data = __Pyx_ModuleStateLookup_data;
#endif
    __Pyx_ModuleStateLookupData *new_data = old_data;
    if (!new_data) {
        new_data = (__Pyx_ModuleStateLookupData *)calloc(1, sizeof(__Pyx_ModuleStateLookupData));
        if (!new_data) {
            result = -1;
            PyErr_NoMemory();
            goto end;
        }
        new_data->allocated = 1;
        new_data->interpreter_id_as_index = 1;
    }
    __Pyx_ModuleStateLookup_wait_until_no_readers();
    if (new_data->interpreter_id_as_index) {
        if (interpreter_id < __PYX_MODULE_STATE_LOOKUP_SMALL_SIZE) {
            result = __Pyx_State_AddModuleInterpIdAsIndex(&new_data, module, interpreter_id);
            goto end;
        }
        __Pyx_State_ConvertFromInterpIdAsIndex(new_data);
    }
    {
        Py_ssize_t insert_at = 0;
        {
            __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
                new_data->table, new_data->count, interpreter_id);
            assert(lower_bound);
            insert_at = lower_bound - new_data->table;
            if (unlikely(insert_at < new_data->count && lower_bound->id == interpreter_id)) {
                lower_bound->module = module;
                goto end;  // already in table, nothing more to do
            }
        }
        if (new_data->count+1 >= new_data->allocated) {
            Py_ssize_t to_allocate = (new_data->count+1)*2;
            new_data =
                (__Pyx_ModuleStateLookupData*)realloc(
                    new_data,
                    sizeof(__Pyx_ModuleStateLookupData) +
                    (to_allocate-1)*sizeof(__Pyx_InterpreterIdAndModule));
            if (!new_data) {
                result = -1;
                new_data = old_data;
                PyErr_NoMemory();
                goto end;
            }
            new_data->allocated = to_allocate;
        }
        ++new_data->count;
        int64_t last_id = interpreter_id;
        PyObject *last_module = module;
        for (Py_ssize_t i=insert_at; i<new_data->count; ++i) {
            int64_t current_id = new_data->table[i].id;
            new_data->table[i].id = last_id;
            last_id = current_id;
            PyObject *current_module = new_data->table[i].module;
            new_data->table[i].module = last_module;
            last_module = current_module;
        }
    }
  end:
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, new_data);
#else
    __Pyx_ModuleStateLookup_data = new_data;
#endif
    __Pyx_ModuleStateLookup_Unlock();
    return result;
}
static int __Pyx_State_RemoveModule(CYTHON_UNUSED void* dummy) {
    int64_t interpreter_id = PyInterpreterState_GetID(__Pyx_PyInterpreterState_Get());
    if (interpreter_id == -1) return -1;
    __Pyx_ModuleStateLookup_Lock();
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __Pyx_ModuleStateLookupData *data = (__Pyx_ModuleStateLookupData *)
            __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, 0);
#else
    __Pyx_ModuleStateLookupData *data = __Pyx_ModuleStateLookup_data;
#endif
    if (data->interpreter_id_as_index) {
        if (interpreter_id < data->count) {
            data->table[interpreter_id].module = NULL;
        }
        goto done;
    }
    {
        __Pyx_ModuleStateLookup_wait_until_no_readers();
        __Pyx_InterpreterIdAndModule* lower_bound = __Pyx_State_FindModuleStateLookupTableLowerBound(
            data->table, data->count, interpreter_id);
        if (!lower_bound) goto done;
        if (lower_bound->id != interpreter_id) goto done;
        __Pyx_InterpreterIdAndModule *end = data->table+data->count;
        for (;lower_bound<end-1; ++lower_bound) {
            lower_bound->id = (lower_bound+1)->id;
            lower_bound->module = (lower_bound+1)->module;
        }
    }
    --data->count;
    if (data->count == 0) {
        free(data);
        data = NULL;
    }
  done:
#if CYTHON_MODULE_STATE_LOOKUP_THREAD_SAFE
    __pyx_atomic_pointer_exchange(&__Pyx_ModuleStateLookup_data, data);
#else
    __Pyx_ModuleStateLookup_data = data;
#endif
    __Pyx_ModuleStateLookup_Unlock();
    return 0;
}
#endif

/* #### Code section: utility_code_pragmas_end ### */
#ifdef _MSC_VER
#pragma warning( pop )
#endif



/* #### Code section: end ### */
#endif /* Py_PYTHON_H */
