| |
|
|
| #define PY_SSIZE_T_CLEAN |
| #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 < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) |
| #error Cython requires Python 2.6+ or Python 3.3+. |
| #else |
| #define CYTHON_ABI "0_29_21" |
| #define CYTHON_HEX_VERSION 0x001D15F0 |
| #define CYTHON_FUTURE_DIVISION 1 |
| #include <stddef.h> |
| #ifndef offsetof |
| #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) |
| #endif |
| #if !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 HAVE_LONG_LONG |
| #if PY_VERSION_HEX >= 0x02070000 |
| #define HAVE_LONG_LONG |
| #endif |
| #endif |
| #ifndef PY_LONG_LONG |
| #define PY_LONG_LONG LONG_LONG |
| #endif |
| #ifndef Py_HUGE_VAL |
| #define Py_HUGE_VAL HUGE_VAL |
| #endif |
| #ifdef PYPY_VERSION |
| #define CYTHON_COMPILING_IN_PYPY 1 |
| #define CYTHON_COMPILING_IN_PYSTON 0 |
| #define CYTHON_COMPILING_IN_CPYTHON 0 |
| #undef CYTHON_USE_TYPE_SLOTS |
| #define CYTHON_USE_TYPE_SLOTS 0 |
| #undef CYTHON_USE_PYTYPE_LOOKUP |
| #define CYTHON_USE_PYTYPE_LOOKUP 0 |
| #if PY_VERSION_HEX < 0x03050000 |
| #undef CYTHON_USE_ASYNC_SLOTS |
| #define CYTHON_USE_ASYNC_SLOTS 0 |
| #elif !defined(CYTHON_USE_ASYNC_SLOTS) |
| #define CYTHON_USE_ASYNC_SLOTS 1 |
| #endif |
| #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_ASSUME_SAFE_MACROS |
| #define CYTHON_ASSUME_SAFE_MACROS 0 |
| #undef CYTHON_UNPACK_METHODS |
| #define CYTHON_UNPACK_METHODS 0 |
| #undef CYTHON_FAST_THREAD_STATE |
| #define CYTHON_FAST_THREAD_STATE 0 |
| #undef CYTHON_FAST_PYCALL |
| #define CYTHON_FAST_PYCALL 0 |
| #undef CYTHON_PEP489_MULTI_PHASE_INIT |
| #define CYTHON_PEP489_MULTI_PHASE_INIT 0 |
| #undef CYTHON_USE_TP_FINALIZE |
| #define CYTHON_USE_TP_FINALIZE 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 |
| #elif defined(PYSTON_VERSION) |
| #define CYTHON_COMPILING_IN_PYPY 0 |
| #define CYTHON_COMPILING_IN_PYSTON 1 |
| #define CYTHON_COMPILING_IN_CPYTHON 0 |
| #ifndef CYTHON_USE_TYPE_SLOTS |
| #define CYTHON_USE_TYPE_SLOTS 1 |
| #endif |
| #undef CYTHON_USE_PYTYPE_LOOKUP |
| #define CYTHON_USE_PYTYPE_LOOKUP 0 |
| #undef CYTHON_USE_ASYNC_SLOTS |
| #define CYTHON_USE_ASYNC_SLOTS 0 |
| #undef CYTHON_USE_PYLIST_INTERNALS |
| #define CYTHON_USE_PYLIST_INTERNALS 0 |
| #ifndef CYTHON_USE_UNICODE_INTERNALS |
| #define CYTHON_USE_UNICODE_INTERNALS 1 |
| #endif |
| #undef CYTHON_USE_UNICODE_WRITER |
| #define CYTHON_USE_UNICODE_WRITER 0 |
| #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_ASSUME_SAFE_MACROS |
| #define CYTHON_ASSUME_SAFE_MACROS 1 |
| #endif |
| #ifndef CYTHON_UNPACK_METHODS |
| #define CYTHON_UNPACK_METHODS 1 |
| #endif |
| #undef CYTHON_FAST_THREAD_STATE |
| #define CYTHON_FAST_THREAD_STATE 0 |
| #undef CYTHON_FAST_PYCALL |
| #define CYTHON_FAST_PYCALL 0 |
| #undef CYTHON_PEP489_MULTI_PHASE_INIT |
| #define CYTHON_PEP489_MULTI_PHASE_INIT 0 |
| #undef CYTHON_USE_TP_FINALIZE |
| #define CYTHON_USE_TP_FINALIZE 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 |
| #else |
| #define CYTHON_COMPILING_IN_PYPY 0 |
| #define CYTHON_COMPILING_IN_PYSTON 0 |
| #define CYTHON_COMPILING_IN_CPYTHON 1 |
| #ifndef CYTHON_USE_TYPE_SLOTS |
| #define CYTHON_USE_TYPE_SLOTS 1 |
| #endif |
| #if PY_VERSION_HEX < 0x02070000 |
| #undef CYTHON_USE_PYTYPE_LOOKUP |
| #define CYTHON_USE_PYTYPE_LOOKUP 0 |
| #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) |
| #define CYTHON_USE_PYTYPE_LOOKUP 1 |
| #endif |
| #if PY_MAJOR_VERSION < 3 |
| #undef CYTHON_USE_ASYNC_SLOTS |
| #define CYTHON_USE_ASYNC_SLOTS 0 |
| #elif !defined(CYTHON_USE_ASYNC_SLOTS) |
| #define CYTHON_USE_ASYNC_SLOTS 1 |
| #endif |
| #if PY_VERSION_HEX < 0x02070000 |
| #undef CYTHON_USE_PYLONG_INTERNALS |
| #define CYTHON_USE_PYLONG_INTERNALS 0 |
| #elif !defined(CYTHON_USE_PYLONG_INTERNALS) |
| #define CYTHON_USE_PYLONG_INTERNALS 1 |
| #endif |
| #ifndef CYTHON_USE_PYLIST_INTERNALS |
| #define CYTHON_USE_PYLIST_INTERNALS 1 |
| #endif |
| #ifndef CYTHON_USE_UNICODE_INTERNALS |
| #define CYTHON_USE_UNICODE_INTERNALS 1 |
| #endif |
| #if PY_VERSION_HEX < 0x030300F0 |
| #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 |
| #ifndef CYTHON_ASSUME_SAFE_MACROS |
| #define CYTHON_ASSUME_SAFE_MACROS 1 |
| #endif |
| #ifndef CYTHON_UNPACK_METHODS |
| #define CYTHON_UNPACK_METHODS 1 |
| #endif |
| #ifndef CYTHON_FAST_THREAD_STATE |
| #define CYTHON_FAST_THREAD_STATE 1 |
| #endif |
| #ifndef CYTHON_FAST_PYCALL |
| #define CYTHON_FAST_PYCALL 1 |
| #endif |
| #ifndef CYTHON_PEP489_MULTI_PHASE_INIT |
| #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) |
| #endif |
| #ifndef CYTHON_USE_TP_FINALIZE |
| #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) |
| #endif |
| #ifndef CYTHON_USE_DICT_VERSIONS |
| #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) |
| #endif |
| #ifndef CYTHON_USE_EXC_INFO_STACK |
| #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) |
| #endif |
| #endif |
| #if !defined(CYTHON_FAST_PYCCALL) |
| #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) |
| #endif |
| #if CYTHON_USE_PYLONG_INTERNALS |
| #include "longintrepr.h" |
| #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(__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_MAYBE_UNUSED_VAR |
| # if defined(__cplusplus) |
| template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } |
| # else |
| # define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) |
| # endif |
| #endif |
| #ifndef CYTHON_NCP_UNUSED |
| # if CYTHON_COMPILING_IN_CPYTHON |
| # define CYTHON_NCP_UNUSED |
| # else |
| # define CYTHON_NCP_UNUSED CYTHON_UNUSED |
| # endif |
| #endif |
| #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) |
| #ifdef _MSC_VER |
| #ifndef _MSC_STDINT_H_ |
| #if _MSC_VER < 1300 |
| typedef unsigned char uint8_t; |
| typedef unsigned int uint32_t; |
| #else |
| typedef unsigned __int8 uint8_t; |
| typedef unsigned __int32 uint32_t; |
| #endif |
| #endif |
| #else |
| #include <stdint.h> |
| #endif |
| #ifndef CYTHON_FALLTHROUGH |
| #if defined(__cplusplus) && __cplusplus >= 201103L |
| #if __has_cpp_attribute(fallthrough) |
| #define CYTHON_FALLTHROUGH [[fallthrough]] |
| #elif __has_cpp_attribute(clang::fallthrough) |
| #define CYTHON_FALLTHROUGH [[clang::fallthrough]] |
| #elif __has_cpp_attribute(gnu::fallthrough) |
| #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] |
| #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 __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 ==(U other) { return *ptr == other; } |
| template<typename U> bool operator !=(U other) { return *ptr != other; } |
| private: |
| T *ptr; |
| }; |
|
|
| #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) |
| #define Py_OptimizeFlag 0 |
| #endif |
| #define __PYX_BUILD_PY_SSIZE_T "n" |
| #define CYTHON_FORMAT_SSIZE_T "z" |
| #if PY_MAJOR_VERSION < 3 |
| #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" |
| #define __Pyx_PyCode_New(a, 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) |
| #define __Pyx_DefaultClassType PyClass_Type |
| #else |
| #define __Pyx_BUILTIN_MODULE_NAME "builtins" |
| #if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 |
| #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ |
| PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) |
| #else |
| #define __Pyx_PyCode_New(a, 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 |
| #define __Pyx_DefaultClassType PyType_Type |
| #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 METH_STACKLESS |
| #define METH_STACKLESS 0 |
| #endif |
| #if PY_VERSION_HEX <= 0x030700A3 || !defined(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 |
| #define __Pyx_PyCFunctionFast _PyCFunctionFast |
| #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords |
| #endif |
| #if CYTHON_FAST_PYCCALL |
| #define __Pyx_PyFastCFunction_Check(func)\ |
| ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) |
| #else |
| #define __Pyx_PyFastCFunction_Check(func) 0 |
| #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_CPYTHON && PY_VERSION_HEX < 0x030400A1 |
| #define PyMem_RawMalloc(n) PyMem_Malloc(n) |
| #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) |
| #define PyMem_RawFree(p) PyMem_Free(p) |
| #endif |
| #if CYTHON_COMPILING_IN_PYSTON |
| #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) |
| #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_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 |
| #define __Pyx_PyThreadState_Current PyThreadState_GET() |
| #elif PY_VERSION_HEX >= 0x03060000 |
| #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() |
| #elif PY_VERSION_HEX >= 0x03000000 |
| #define __Pyx_PyThreadState_Current PyThreadState_GET() |
| #else |
| #define __Pyx_PyThreadState_Current _PyThreadState_Current |
| #endif |
| #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) |
| #include "pythread.h" |
| #define Py_tss_NEEDS_INIT 0 |
| typedef int Py_tss_t; |
| static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { |
| *key = PyThread_create_key(); |
| return 0; |
| } |
| static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { |
| Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); |
| *key = Py_tss_NEEDS_INIT; |
| return key; |
| } |
| static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { |
| PyObject_Free(key); |
| } |
| static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { |
| return *key != Py_tss_NEEDS_INIT; |
| } |
| static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { |
| PyThread_delete_key(*key); |
| *key = Py_tss_NEEDS_INIT; |
| } |
| static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { |
| return PyThread_set_key_value(*key, value); |
| } |
| static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { |
| return PyThread_get_key_value(*key); |
| } |
| #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 |
| #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION |
| #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) |
| #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) |
| #else |
| #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) |
| #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) |
| #endif |
| #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS |
| #define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) |
| #else |
| #define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) |
| #endif |
| #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) |
| #define CYTHON_PEP393_ENABLED 1 |
| #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ |
| 0 : _PyUnicode_Ready((PyObject *)(op))) |
| #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) |
| #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) 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, ch) |
| #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE) |
| #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) |
| #else |
| #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) |
| #endif |
| #else |
| #define CYTHON_PEP393_ENABLED 0 |
| #define PyUnicode_1BYTE_KIND 1 |
| #define PyUnicode_2BYTE_KIND 2 |
| #define PyUnicode_4BYTE_KIND 4 |
| #define __Pyx_PyUnicode_READY(op) (0) |
| #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) |
| #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) |
| #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) |
| #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) |
| #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) |
| #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) |
| #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) |
| #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) |
| #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 && !defined(PyUnicode_Contains) |
| #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) |
| #endif |
| #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) |
| #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) |
| #endif |
| #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) |
| #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) |
| #endif |
| #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) |
| #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 PY_MAJOR_VERSION >= 3 |
| #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) |
| #else |
| #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) |
| #endif |
| #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) |
| #define PyObject_ASCII(o) PyObject_Repr(o) |
| #endif |
| #if PY_MAJOR_VERSION >= 3 |
| #define PyBaseString_Type PyUnicode_Type |
| #define PyStringObject PyUnicodeObject |
| #define PyString_Type PyUnicode_Type |
| #define PyString_Check PyUnicode_Check |
| #define PyString_CheckExact PyUnicode_CheckExact |
| #ifndef PyObject_Unicode |
| #define PyObject_Unicode PyObject_Str |
| #endif |
| #endif |
| #if PY_MAJOR_VERSION >= 3 |
| #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) |
| #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) |
| #else |
| #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) |
| #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) |
| #endif |
| #ifndef PySet_CheckExact |
| #define PySet_CheckExact(obj) (Py_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 |
| #if CYTHON_ASSUME_SAFE_MACROS |
| #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) |
| #else |
| #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) |
| #endif |
| #if PY_MAJOR_VERSION >= 3 |
| #define PyIntObject PyLongObject |
| #define PyInt_Type PyLong_Type |
| #define PyInt_Check(op) PyLong_Check(op) |
| #define PyInt_CheckExact(op) PyLong_CheckExact(op) |
| #define PyInt_FromString PyLong_FromString |
| #define PyInt_FromUnicode PyLong_FromUnicode |
| #define PyInt_FromLong PyLong_FromLong |
| #define PyInt_FromSize_t PyLong_FromSize_t |
| #define PyInt_FromSsize_t PyLong_FromSsize_t |
| #define PyInt_AsLong PyLong_AsLong |
| #define PyInt_AS_LONG PyLong_AS_LONG |
| #define PyInt_AsSsize_t PyLong_AsSsize_t |
| #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask |
| #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask |
| #define PyNumber_Int PyNumber_Long |
| #endif |
| #if PY_MAJOR_VERSION >= 3 |
| #define PyBoolObject PyLongObject |
| #endif |
| #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY |
| #ifndef PyUnicode_InternFromString |
| #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) |
| #endif |
| #endif |
| #if PY_VERSION_HEX < 0x030200A4 |
| typedef long Py_hash_t; |
| #define __Pyx_PyInt_FromHash_t PyInt_FromLong |
| #define __Pyx_PyInt_AsHash_t PyInt_AsLong |
| #else |
| #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t |
| #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t |
| #endif |
| #if PY_MAJOR_VERSION >= 3 |
| #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) |
| #else |
| #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) |
| #endif |
| #if CYTHON_USE_ASYNC_SLOTS |
| #if PY_VERSION_HEX >= 0x030500B1 |
| #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods |
| #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) |
| #else |
| #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) |
| #endif |
| #else |
| #define __Pyx_PyType_AsAsync(obj) NULL |
| #endif |
| #ifndef __Pyx_PyAsyncMethodsStruct |
| typedef struct { |
| unaryfunc am_await; |
| unaryfunc am_aiter; |
| unaryfunc am_anext; |
| } __Pyx_PyAsyncMethodsStruct; |
| #endif |
|
|
| #if defined(WIN32) || defined(MS_WINDOWS) |
| #define _USE_MATH_DEFINES |
| #endif |
| #include <math.h> |
| #ifdef NAN |
| #define __PYX_NAN() ((float) NAN) |
| #else |
| static CYTHON_INLINE float __PYX_NAN() { |
| float value; |
| memset(&value, 0xFF, sizeof(value)); |
| return value; |
| } |
| #endif |
| #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) |
| #define __Pyx_truncl trunc |
| #else |
| #define __Pyx_truncl truncl |
| #endif |
|
|
| #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; } |
| #define __PYX_ERR(f_index, lineno, Ln_error) \ |
| { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } |
|
|
| #ifndef __PYX_EXTERN_C |
| #ifdef __cplusplus |
| #define __PYX_EXTERN_C extern "C" |
| #else |
| #define __PYX_EXTERN_C extern |
| #endif |
| #endif |
|
|
| #define __PYX_HAVE__kenlm |
| #define __PYX_HAVE_API__kenlm |
| |
| #include "lm/word_index.hh" |
| #include "lm/return.hh" |
| #include "lm/state.hh" |
| #include "lm/virtual_interface.hh" |
| #include "util/mmap.hh" |
| #include "lm/config.hh" |
| #include "ios" |
| #include "new" |
| #include "stdexcept" |
| #include "typeinfo" |
| #include "lm/model.hh" |
| #include "python/score_sentence.hh" |
| #ifdef _OPENMP |
| #include <omp.h> |
| #endif |
|
|
| #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) |
| #define CYTHON_WITHOUT_ASSERTIONS |
| #endif |
|
|
| typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; |
| const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; |
|
|
| #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 |
| #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 |
| #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) |
| #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 const char* __Pyx_PyObject_AsString(PyObject*); |
| static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); |
| #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) |
| #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 PY_MAJOR_VERSION < 3 |
| #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString |
| #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize |
| #else |
| #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString |
| #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize |
| #endif |
| #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_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) |
| #define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) |
| #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __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_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) |
| #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) |
| static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { |
| const Py_UNICODE *u_end = u; |
| while (*u_end++) ; |
| return (size_t)(u_end - u - 1); |
| } |
| #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) |
| #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode |
| #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode |
| #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) |
| #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) |
| 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_IntOrLong(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_PyInt_FromSize_t(size_t); |
| #if CYTHON_ASSUME_SAFE_MACROS |
| #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) |
| #else |
| #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) |
| #endif |
| #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) |
| #if PY_MAJOR_VERSION >= 3 |
| #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) |
| #else |
| #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) |
| #endif |
| #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) |
| #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII |
| static int __Pyx_sys_getdefaultencoding_not_ascii; |
| static int __Pyx_init_sys_getdefaultencoding_params(void) { |
| PyObject* sys; |
| PyObject* default_encoding = NULL; |
| PyObject* ascii_chars_u = NULL; |
| PyObject* ascii_chars_b = NULL; |
| const char* default_encoding_c; |
| sys = PyImport_ImportModule("sys"); |
| if (!sys) goto bad; |
| default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); |
| Py_DECREF(sys); |
| if (!default_encoding) goto bad; |
| default_encoding_c = PyBytes_AsString(default_encoding); |
| if (!default_encoding_c) goto bad; |
| if (strcmp(default_encoding_c, "ascii") == 0) { |
| __Pyx_sys_getdefaultencoding_not_ascii = 0; |
| } else { |
| char ascii_chars[128]; |
| int c; |
| for (c = 0; c < 128; c++) { |
| ascii_chars[c] = c; |
| } |
| __Pyx_sys_getdefaultencoding_not_ascii = 1; |
| ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); |
| if (!ascii_chars_u) goto bad; |
| ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); |
| if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { |
| PyErr_Format( |
| PyExc_ValueError, |
| "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", |
| default_encoding_c); |
| goto bad; |
| } |
| Py_DECREF(ascii_chars_u); |
| Py_DECREF(ascii_chars_b); |
| } |
| Py_DECREF(default_encoding); |
| return 0; |
| bad: |
| Py_XDECREF(default_encoding); |
| Py_XDECREF(ascii_chars_u); |
| Py_XDECREF(ascii_chars_b); |
| return -1; |
| } |
| #endif |
| #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 |
| #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) |
| #else |
| #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) |
| #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT |
| static char* __PYX_DEFAULT_STRING_ENCODING; |
| static int __Pyx_init_sys_getdefaultencoding_params(void) { |
| PyObject* sys; |
| PyObject* default_encoding = NULL; |
| char* default_encoding_c; |
| sys = PyImport_ImportModule("sys"); |
| if (!sys) goto bad; |
| default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); |
| Py_DECREF(sys); |
| if (!default_encoding) goto bad; |
| default_encoding_c = PyBytes_AsString(default_encoding); |
| if (!default_encoding_c) goto bad; |
| __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); |
| if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; |
| strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); |
| Py_DECREF(default_encoding); |
| return 0; |
| bad: |
| Py_XDECREF(default_encoding); |
| return -1; |
| } |
| #endif |
| #endif |
|
|
|
|
| |
| #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 |
| #define likely(x) (x) |
| #define unlikely(x) (x) |
| #endif |
| static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } |
|
|
| static PyObject *__pyx_m = NULL; |
| static PyObject *__pyx_d; |
| static PyObject *__pyx_b; |
| static PyObject *__pyx_cython_runtime = NULL; |
| static PyObject *__pyx_empty_tuple; |
| static PyObject *__pyx_empty_bytes; |
| static PyObject *__pyx_empty_unicode; |
| static int __pyx_lineno; |
| static int __pyx_clineno = 0; |
| static const char * __pyx_cfilenm= __FILE__; |
| static const char *__pyx_filename; |
|
|
|
|
| static const char *__pyx_f[] = { |
| "kenlm.pyx", |
| "stringsource", |
| }; |
|
|
| |
| struct __pyx_obj_5kenlm_FullScoreReturn; |
| struct __pyx_obj_5kenlm_State; |
| struct __pyx_obj_5kenlm_Config; |
| struct __pyx_obj_5kenlm_Model; |
| struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores; |
|
|
| |
| |
| |
| |
| |
| |
| |
| struct __pyx_obj_5kenlm_FullScoreReturn { |
| PyObject_HEAD |
| float log_prob; |
| int ngram_length; |
| int oov; |
| }; |
|
|
|
|
| |
| |
| |
| |
| |
| |
| |
| struct __pyx_obj_5kenlm_State { |
| PyObject_HEAD |
| lm::ngram::State _c_state; |
| }; |
|
|
|
|
| |
| |
| |
| |
| |
| |
| |
| struct __pyx_obj_5kenlm_Config { |
| PyObject_HEAD |
| lm::ngram::Config _c_config; |
| }; |
|
|
|
|
| |
| |
| |
| |
| |
| |
| |
| struct __pyx_obj_5kenlm_Model { |
| PyObject_HEAD |
| lm::base::Model *model; |
| PyObject *path; |
| const lm::base::Vocabulary *vocab; |
| }; |
|
|
|
|
| |
| |
| |
| |
| |
| |
| |
| struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores { |
| PyObject_HEAD |
| PyObject *__pyx_v_bos; |
| PyObject *__pyx_v_eos; |
| lm::ngram::State __pyx_v_out_state; |
| struct lm::FullScoreReturn __pyx_v_ret; |
| struct __pyx_obj_5kenlm_Model *__pyx_v_self; |
| PyObject *__pyx_v_sentence; |
| lm::ngram::State __pyx_v_state; |
| float __pyx_v_total; |
| lm::WordIndex __pyx_v_wid; |
| PyObject *__pyx_v_word; |
| PyObject *__pyx_v_words; |
| PyObject *__pyx_t_0; |
| Py_ssize_t __pyx_t_1; |
| }; |
|
|
|
|
| |
| |
| #ifndef CYTHON_REFNANNY |
| #define CYTHON_REFNANNY 0 |
| #endif |
| #if CYTHON_REFNANNY |
| typedef struct { |
| void (*INCREF)(void*, PyObject*, int); |
| void (*DECREF)(void*, PyObject*, int); |
| void (*GOTREF)(void*, PyObject*, int); |
| void (*GIVEREF)(void*, PyObject*, int); |
| void* (*SetupContext)(const char*, int, 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; |
| #ifdef WITH_THREAD |
| #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__);\ |
| } |
| #else |
| #define __Pyx_RefNannySetupContext(name, acquire_gil)\ |
| __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) |
| #endif |
| #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) {__Pyx_INCREF(r); }} while(0) |
| #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) |
| #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) |
| #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) |
| #else |
| #define __Pyx_RefNannyDeclarations |
| #define __Pyx_RefNannySetupContext(name, acquire_gil) |
| #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_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) |
|
|
| |
| #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 |
|
|
| |
| static PyObject *__Pyx_GetBuiltinName(PyObject *name); |
|
|
| |
| #if CYTHON_FAST_PYCCALL |
| static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); |
| #else |
| #define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) |
| #endif |
|
|
| |
| #if CYTHON_FAST_PYCALL |
| #define __Pyx_PyFunction_FastCall(func, args, nargs)\ |
| __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) |
| #if 1 || PY_VERSION_HEX < 0x030600B1 |
| static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); |
| #else |
| #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) |
| #endif |
| #define __Pyx_BUILD_ASSERT_EXPR(cond)\ |
| (sizeof(char [1 - 2*!(cond)]) - 1) |
| #ifndef Py_MEMBER_SIZE |
| #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) |
| #endif |
| static size_t __pyx_pyframe_localsplus_offset = 0; |
| #include "frameobject.h" |
| #define __Pxy_PyFrame_Initialize_Offsets()\ |
| ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ |
| (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) |
| #define __Pyx_PyFrame_GetLocalsplus(frame)\ |
| (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) |
| #endif |
|
|
| |
| #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 |
|
|
| |
| static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); |
|
|
| |
| #if CYTHON_COMPILING_IN_CPYTHON |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); |
| #endif |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); |
|
|
| |
| #if CYTHON_FAST_THREAD_STATE |
| #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; |
| #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; |
| #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type |
| #else |
| #define __Pyx_PyThreadState_declare |
| #define __Pyx_PyThreadState_assign |
| #define __Pyx_PyErr_Occurred() PyErr_Occurred() |
| #endif |
|
|
| |
| #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 |
| #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 |
|
|
| |
| static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); |
|
|
| |
| 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); |
|
|
| |
| static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); |
|
|
| |
| static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ |
| PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ |
| const char* function_name); |
|
|
| |
| #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ |
| ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\ |
| __Pyx__ArgTypeTest(obj, type, name, exact)) |
| static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); |
|
|
| |
| #if CYTHON_COMPILING_IN_CPYTHON |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); |
| #else |
| #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) |
| #endif |
|
|
| |
| static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); |
|
|
| |
| #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_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 |
|
|
| |
| #if CYTHON_USE_DICT_VERSIONS |
| #define __Pyx_GetModuleGlobalName(var, name) {\ |
| 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_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);\ |
| } |
| #define __Pyx_GetModuleGlobalNameUncached(var, name) {\ |
| PY_UINT64_T __pyx_dict_version;\ |
| PyObject *__pyx_dict_cached_value;\ |
| (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ |
| } |
| 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 |
|
|
| |
| #if CYTHON_USE_EXC_INFO_STACK |
| static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); |
| #endif |
|
|
| |
| #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 |
|
|
| |
| #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 |
|
|
| |
| #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 |
|
|
| |
| #if CYTHON_FAST_THREAD_STATE |
| #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) |
| static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); |
| #else |
| static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); |
| #endif |
|
|
| |
| #include <string.h> |
|
|
| |
| #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); |
| #else |
| #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr |
| #endif |
|
|
| |
| #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 |
| static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); |
| #else |
| #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr |
| #endif |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); |
|
|
| |
| static int __Pyx_setup_reduce(PyObject* type_obj); |
|
|
| |
| static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); |
|
|
| |
| #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 |
| #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 |
|
|
| |
| static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases); |
|
|
| |
| 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); |
|
|
| |
| #ifdef CYTHON_CLINE_IN_TRACEBACK |
| #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) |
| #else |
| static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); |
| #endif |
|
|
| |
| typedef struct { |
| PyCodeObject* code_object; |
| int code_line; |
| } __Pyx_CodeObjectCacheEntry; |
| struct __Pyx_CodeObjectCache { |
| int count; |
| int max_count; |
| __Pyx_CodeObjectCacheEntry* entries; |
| }; |
| static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; |
| static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); |
| static PyCodeObject *__pyx_find_code_object(int code_line); |
| static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); |
|
|
| |
| static void __Pyx_AddTraceback(const char *funcname, int c_line, |
| int py_line, const char *filename); |
|
|
| |
| #include <new> |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__util_3a__3a_LoadMethod(enum util::LoadMethod value); |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__lm_3a__3a_ngram_3a__3a_Config_3a__3a_ARPALoadComplain(enum lm::ngram::Config::ARPALoadComplain value); |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); |
|
|
| |
| #ifndef __Pyx_CppExn2PyErr |
| #include <new> |
| #include <typeinfo> |
| #include <stdexcept> |
| #include <ios> |
| static void __Pyx_CppExn2PyErr() { |
| try { |
| if (PyErr_Occurred()) |
| ; |
| 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 |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value); |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value); |
|
|
| |
| static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); |
|
|
| |
| static CYTHON_INLINE enum util::LoadMethod __Pyx_PyInt_As_enum__util_3a__3a_LoadMethod(PyObject *); |
|
|
| |
| static CYTHON_INLINE enum lm::ngram::Config::ARPALoadComplain __Pyx_PyInt_As_enum__lm_3a__3a_ngram_3a__3a_Config_3a__3a_ARPALoadComplain(PyObject *); |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); |
|
|
| |
| static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); |
|
|
| |
| #if CYTHON_COMPILING_IN_CPYTHON |
| #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) |
| static CYTHON_INLINE int __Pyx_IsSubtype(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_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) |
| #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) |
| #endif |
| #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) |
|
|
| |
| static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); |
|
|
| |
| static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); |
|
|
| |
| static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); |
|
|
| |
| typedef PyObject *(*__pyx_coroutine_body_t)(PyObject *, PyThreadState *, PyObject *); |
| #if CYTHON_USE_EXC_INFO_STACK |
| #define __Pyx_ExcInfoStruct _PyErr_StackItem |
| #else |
| typedef struct { |
| PyObject *exc_type; |
| PyObject *exc_value; |
| PyObject *exc_traceback; |
| } __Pyx_ExcInfoStruct; |
| #endif |
| typedef struct { |
| PyObject_HEAD |
| __pyx_coroutine_body_t body; |
| PyObject *closure; |
| __Pyx_ExcInfoStruct gi_exc_state; |
| PyObject *gi_weakreflist; |
| PyObject *classobj; |
| PyObject *yieldfrom; |
| PyObject *gi_name; |
| PyObject *gi_qualname; |
| PyObject *gi_modulename; |
| PyObject *gi_code; |
| int resume_label; |
| char is_running; |
| } __pyx_CoroutineObject; |
| static __pyx_CoroutineObject *__Pyx__Coroutine_New( |
| PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, |
| PyObject *name, PyObject *qualname, PyObject *module_name); |
| static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit( |
| __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, |
| PyObject *name, PyObject *qualname, PyObject *module_name); |
| static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self); |
| static int __Pyx_Coroutine_clear(PyObject *self); |
| static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value); |
| static PyObject *__Pyx_Coroutine_Close(PyObject *self); |
| static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args); |
| #if CYTHON_USE_EXC_INFO_STACK |
| #define __Pyx_Coroutine_SwapException(self) |
| #define __Pyx_Coroutine_ResetAndClearException(self) __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state) |
| #else |
| #define __Pyx_Coroutine_SwapException(self) {\ |
| __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\ |
| __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\ |
| } |
| #define __Pyx_Coroutine_ResetAndClearException(self) {\ |
| __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\ |
| (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\ |
| } |
| #endif |
| #if CYTHON_FAST_THREAD_STATE |
| #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ |
| __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue) |
| #else |
| #define __Pyx_PyGen_FetchStopIterationValue(pvalue)\ |
| __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue) |
| #endif |
| static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue); |
| static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state); |
|
|
| |
| static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code); |
|
|
| |
| static int __Pyx_patch_abc(void); |
|
|
| |
| #define __Pyx_Generator_USED |
| static PyTypeObject *__pyx_GeneratorType = 0; |
| #define __Pyx_Generator_CheckExact(obj) (Py_TYPE(obj) == __pyx_GeneratorType) |
| #define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\ |
| __Pyx__Coroutine_New(__pyx_GeneratorType, body, code, closure, name, qualname, module_name) |
| static PyObject *__Pyx_Generator_Next(PyObject *self); |
| static int __pyx_Generator_init(void); |
|
|
| |
| static int __Pyx_check_binary_version(void); |
|
|
| |
| static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); |
|
|
|
|
| |
|
|
| |
|
|
| |
| static PyTypeObject *__pyx_ptype_5kenlm_FullScoreReturn = 0; |
| static PyTypeObject *__pyx_ptype_5kenlm_State = 0; |
| static PyTypeObject *__pyx_ptype_5kenlm_Config = 0; |
| static PyTypeObject *__pyx_ptype_5kenlm_Model = 0; |
| static PyTypeObject *__pyx_ptype_5kenlm___pyx_scope_struct__full_scores = 0; |
| static PyObject *__pyx_f_5kenlm_as_str(PyObject *); |
| #define __Pyx_MODULE_NAME "kenlm" |
| extern int __pyx_module_is_main_kenlm; |
| int __pyx_module_is_main_kenlm = 0; |
|
|
| |
| static PyObject *__pyx_builtin_TypeError; |
| static PyObject *__pyx_builtin_RuntimeError; |
| static PyObject *__pyx_builtin_IOError; |
| static const char __pyx_k__8[] = "\n"; |
| static const char __pyx_k__9[] = " "; |
| static const char __pyx_k_os[] = "os"; |
| static const char __pyx_k_ALL[] = "ALL"; |
| static const char __pyx_k_bos[] = "bos"; |
| static const char __pyx_k_doc[] = "__doc__"; |
| static const char __pyx_k_eos[] = "eos"; |
| static const char __pyx_k_oov[] = "oov"; |
| static const char __pyx_k_LAZY[] = "LAZY"; |
| static const char __pyx_k_NONE[] = "NONE"; |
| static const char __pyx_k_READ[] = "READ"; |
| static const char __pyx_k_args[] = "args"; |
| static const char __pyx_k_copy[] = "__copy__"; |
| static const char __pyx_k_main[] = "__main__"; |
| static const char __pyx_k_name[] = "__name__"; |
| static const char __pyx_k_path[] = "path"; |
| static const char __pyx_k_send[] = "send"; |
| static const char __pyx_k_test[] = "__test__"; |
| static const char __pyx_k_utf8[] = "utf8"; |
| static const char __pyx_k_word[] = "word"; |
| static const char __pyx_k_Model[] = "Model"; |
| static const char __pyx_k_State[] = "State"; |
| static const char __pyx_k_class[] = "__class__"; |
| static const char __pyx_k_close[] = "close"; |
| static const char __pyx_k_kenlm[] = "kenlm"; |
| static const char __pyx_k_score[] = "score"; |
| static const char __pyx_k_split[] = "split"; |
| static const char __pyx_k_throw[] = "throw"; |
| static const char __pyx_k_Config[] = "Config"; |
| static const char __pyx_k_config[] = "config"; |
| static const char __pyx_k_encode[] = "encode"; |
| static const char __pyx_k_format[] = "format"; |
| static const char __pyx_k_import[] = "__import__"; |
| static const char __pyx_k_module[] = "__module__"; |
| static const char __pyx_k_reduce[] = "__reduce__"; |
| static const char __pyx_k_0_1_2_3[] = "{0}({1}, {2}, {3})"; |
| static const char __pyx_k_IOError[] = "IOError"; |
| static const char __pyx_k_abspath[] = "abspath"; |
| static const char __pyx_k_prepare[] = "__prepare__"; |
| static const char __pyx_k_basename[] = "basename"; |
| static const char __pyx_k_getstate[] = "__getstate__"; |
| static const char __pyx_k_in_state[] = "in_state"; |
| static const char __pyx_k_log_prob[] = "log_prob"; |
| static const char __pyx_k_qualname[] = "__qualname__"; |
| static const char __pyx_k_sentence[] = "sentence"; |
| static const char __pyx_k_setstate[] = "__setstate__"; |
| static const char __pyx_k_EXPENSIVE[] = "EXPENSIVE"; |
| static const char __pyx_k_TypeError[] = "TypeError"; |
| static const char __pyx_k_metaclass[] = "__metaclass__"; |
| static const char __pyx_k_out_state[] = "out_state"; |
| static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; |
| static const char __pyx_k_LoadMethod[] = "LoadMethod"; |
| static const char __pyx_k_full_scores[] = "full_scores"; |
| static const char __pyx_k_Model_from_0[] = "<Model from {0}>"; |
| static const char __pyx_k_RuntimeError[] = "RuntimeError"; |
| static const char __pyx_k_ngram_length[] = "ngram_length"; |
| static const char __pyx_k_LanguageModel[] = "LanguageModel"; |
| static const char __pyx_k_PARALLEL_READ[] = "PARALLEL_READ"; |
| static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; |
| static const char __pyx_k_FullScoreReturn[] = "FullScoreReturn"; |
| static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; |
| static const char __pyx_k_ARPALoadComplain[] = "ARPALoadComplain"; |
| static const char __pyx_k_POPULATE_OR_LAZY[] = "POPULATE_OR_LAZY"; |
| static const char __pyx_k_POPULATE_OR_READ[] = "POPULATE_OR_READ"; |
| static const char __pyx_k_Cannot_read_model[] = "Cannot read model '{}' ({})"; |
| static const char __pyx_k_Model_full_scores[] = "Model.full_scores"; |
| static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; |
| static const char __pyx_k_Cannot_convert_s_to_string[] = "Cannot convert %s to string"; |
| static const char __pyx_k_Backwards_compatability_stub_Use[] = "Backwards compatability stub. Use Model."; |
| static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; |
| static const char __pyx_k_self__c_config_cannot_be_convert[] = "self._c_config cannot be converted to a Python object for pickling"; |
| static const char __pyx_k_self__c_state_cannot_be_converte[] = "self._c_state cannot be converted to a Python object for pickling"; |
| static PyObject *__pyx_kp_u_0_1_2_3; |
| static PyObject *__pyx_n_s_ALL; |
| static PyObject *__pyx_n_s_ARPALoadComplain; |
| static PyObject *__pyx_kp_s_Backwards_compatability_stub_Use; |
| static PyObject *__pyx_kp_u_Cannot_convert_s_to_string; |
| static PyObject *__pyx_kp_u_Cannot_read_model; |
| static PyObject *__pyx_n_s_Config; |
| static PyObject *__pyx_n_s_EXPENSIVE; |
| static PyObject *__pyx_n_s_FullScoreReturn; |
| static PyObject *__pyx_n_s_IOError; |
| static PyObject *__pyx_n_s_LAZY; |
| static PyObject *__pyx_n_s_LanguageModel; |
| static PyObject *__pyx_n_s_LoadMethod; |
| static PyObject *__pyx_n_s_Model; |
| static PyObject *__pyx_kp_u_Model_from_0; |
| static PyObject *__pyx_n_s_Model_full_scores; |
| static PyObject *__pyx_n_s_NONE; |
| static PyObject *__pyx_n_s_PARALLEL_READ; |
| static PyObject *__pyx_n_s_POPULATE_OR_LAZY; |
| static PyObject *__pyx_n_s_POPULATE_OR_READ; |
| static PyObject *__pyx_n_s_READ; |
| static PyObject *__pyx_n_s_RuntimeError; |
| static PyObject *__pyx_n_s_State; |
| static PyObject *__pyx_n_s_TypeError; |
| static PyObject *__pyx_kp_u__8; |
| static PyObject *__pyx_kp_u__9; |
| static PyObject *__pyx_n_s_abspath; |
| static PyObject *__pyx_n_s_args; |
| static PyObject *__pyx_n_s_basename; |
| static PyObject *__pyx_n_s_bos; |
| static PyObject *__pyx_n_s_class; |
| static PyObject *__pyx_n_s_cline_in_traceback; |
| static PyObject *__pyx_n_s_close; |
| static PyObject *__pyx_n_s_config; |
| static PyObject *__pyx_n_s_copy; |
| static PyObject *__pyx_n_s_doc; |
| static PyObject *__pyx_n_s_encode; |
| static PyObject *__pyx_n_s_eos; |
| static PyObject *__pyx_n_s_format; |
| static PyObject *__pyx_n_s_full_scores; |
| static PyObject *__pyx_n_s_getstate; |
| static PyObject *__pyx_n_s_import; |
| static PyObject *__pyx_n_s_in_state; |
| static PyObject *__pyx_n_s_kenlm; |
| static PyObject *__pyx_n_s_log_prob; |
| static PyObject *__pyx_n_s_main; |
| static PyObject *__pyx_n_s_metaclass; |
| static PyObject *__pyx_n_s_module; |
| static PyObject *__pyx_n_s_name; |
| static PyObject *__pyx_n_s_ngram_length; |
| static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; |
| static PyObject *__pyx_n_s_oov; |
| static PyObject *__pyx_n_s_os; |
| static PyObject *__pyx_n_s_out_state; |
| static PyObject *__pyx_n_s_path; |
| static PyObject *__pyx_n_s_prepare; |
| static PyObject *__pyx_n_s_qualname; |
| static PyObject *__pyx_n_s_reduce; |
| static PyObject *__pyx_n_s_reduce_cython; |
| static PyObject *__pyx_n_s_reduce_ex; |
| static PyObject *__pyx_n_s_score; |
| static PyObject *__pyx_kp_s_self__c_config_cannot_be_convert; |
| static PyObject *__pyx_kp_s_self__c_state_cannot_be_converte; |
| static PyObject *__pyx_n_s_send; |
| static PyObject *__pyx_n_s_sentence; |
| static PyObject *__pyx_n_s_setstate; |
| static PyObject *__pyx_n_s_setstate_cython; |
| static PyObject *__pyx_n_s_split; |
| static PyObject *__pyx_n_s_test; |
| static PyObject *__pyx_n_s_throw; |
| static PyObject *__pyx_n_u_utf8; |
| static PyObject *__pyx_n_s_word; |
| static int __pyx_pf_5kenlm_15FullScoreReturn___cinit__(struct __pyx_obj_5kenlm_FullScoreReturn *__pyx_v_self, PyObject *__pyx_v_log_prob, PyObject *__pyx_v_ngram_length, PyObject *__pyx_v_oov); |
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_2__repr__(struct __pyx_obj_5kenlm_FullScoreReturn *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_8log_prob___get__(struct __pyx_obj_5kenlm_FullScoreReturn *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_12ngram_length___get__(struct __pyx_obj_5kenlm_FullScoreReturn *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_3oov___get__(struct __pyx_obj_5kenlm_FullScoreReturn *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_FullScoreReturn *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_FullScoreReturn *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); |
| static PyObject *__pyx_pf_5kenlm_5State___richcmp__(struct __pyx_obj_5kenlm_State *__pyx_v_qa, struct __pyx_obj_5kenlm_State *__pyx_v_qb, int __pyx_v_op); |
| static Py_hash_t __pyx_pf_5kenlm_5State_2__hash__(struct __pyx_obj_5kenlm_State *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_5State_4__copy__(struct __pyx_obj_5kenlm_State *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_5State_6__deepcopy__(struct __pyx_obj_5kenlm_State *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_5State_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_State *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_5State_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_State *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); |
| static int __pyx_pf_5kenlm_6Config___init__(struct __pyx_obj_5kenlm_Config *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_6Config_11load_method___get__(struct __pyx_obj_5kenlm_Config *__pyx_v_self); |
| static int __pyx_pf_5kenlm_6Config_11load_method_2__set__(struct __pyx_obj_5kenlm_Config *__pyx_v_self, PyObject *__pyx_v_to); |
| static PyObject *__pyx_pf_5kenlm_6Config_13show_progress___get__(struct __pyx_obj_5kenlm_Config *__pyx_v_self); |
| static int __pyx_pf_5kenlm_6Config_13show_progress_2__set__(struct __pyx_obj_5kenlm_Config *__pyx_v_self, PyObject *__pyx_v_to); |
| static PyObject *__pyx_pf_5kenlm_6Config_13arpa_complain___get__(struct __pyx_obj_5kenlm_Config *__pyx_v_self); |
| static int __pyx_pf_5kenlm_6Config_13arpa_complain_2__set__(struct __pyx_obj_5kenlm_Config *__pyx_v_self, PyObject *__pyx_v_to); |
| static PyObject *__pyx_pf_5kenlm_6Config_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_Config *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_6Config_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_Config *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); |
| static int __pyx_pf_5kenlm_5Model___init__(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_path, struct __pyx_obj_5kenlm_Config *__pyx_v_config); |
| static void __pyx_pf_5kenlm_5Model_2__dealloc__(struct __pyx_obj_5kenlm_Model *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_5Model_5order___get__(struct __pyx_obj_5kenlm_Model *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_5Model_4score(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_sentence, PyObject *__pyx_v_bos, PyObject *__pyx_v_eos); |
| static PyObject *__pyx_pf_5kenlm_5Model_6perplexity(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_sentence); |
| static PyObject *__pyx_pf_5kenlm_5Model_8full_scores(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_sentence, PyObject *__pyx_v_bos, PyObject *__pyx_v_eos); |
| static PyObject *__pyx_pf_5kenlm_5Model_11BeginSentenceWrite(struct __pyx_obj_5kenlm_Model *__pyx_v_self, struct __pyx_obj_5kenlm_State *__pyx_v_state); |
| static PyObject *__pyx_pf_5kenlm_5Model_13NullContextWrite(struct __pyx_obj_5kenlm_Model *__pyx_v_self, struct __pyx_obj_5kenlm_State *__pyx_v_state); |
| static PyObject *__pyx_pf_5kenlm_5Model_15BaseScore(struct __pyx_obj_5kenlm_Model *__pyx_v_self, struct __pyx_obj_5kenlm_State *__pyx_v_in_state, PyObject *__pyx_v_word, struct __pyx_obj_5kenlm_State *__pyx_v_out_state); |
| static PyObject *__pyx_pf_5kenlm_5Model_17BaseFullScore(struct __pyx_obj_5kenlm_Model *__pyx_v_self, struct __pyx_obj_5kenlm_State *__pyx_v_in_state, PyObject *__pyx_v_word, struct __pyx_obj_5kenlm_State *__pyx_v_out_state); |
| static int __pyx_pf_5kenlm_5Model_19__contains__(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_word); |
| static PyObject *__pyx_pf_5kenlm_5Model_21__repr__(struct __pyx_obj_5kenlm_Model *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_5Model_23__reduce__(struct __pyx_obj_5kenlm_Model *__pyx_v_self); |
| static PyObject *__pyx_pf_5kenlm_5Model_4path___get__(struct __pyx_obj_5kenlm_Model *__pyx_v_self); |
| static int __pyx_pf_5kenlm_5Model_4path_2__set__(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_value); |
| static int __pyx_pf_5kenlm_5Model_4path_4__del__(struct __pyx_obj_5kenlm_Model *__pyx_v_self); |
| static PyObject *__pyx_tp_new_5kenlm_FullScoreReturn(PyTypeObject *t, PyObject *a, PyObject *k); |
| static PyObject *__pyx_tp_new_5kenlm_State(PyTypeObject *t, PyObject *a, PyObject *k); |
| static PyObject *__pyx_tp_new_5kenlm_Config(PyTypeObject *t, PyObject *a, PyObject *k); |
| static PyObject *__pyx_tp_new_5kenlm_Model(PyTypeObject *t, PyObject *a, PyObject *k); |
| static PyObject *__pyx_tp_new_5kenlm___pyx_scope_struct__full_scores(PyTypeObject *t, PyObject *a, PyObject *k); |
| static PyObject *__pyx_float_10_0; |
| static struct __pyx_obj_5kenlm_Config *__pyx_k__7; |
| static PyObject *__pyx_tuple_; |
| static PyObject *__pyx_tuple__2; |
| static PyObject *__pyx_tuple__3; |
| static PyObject *__pyx_tuple__4; |
| static PyObject *__pyx_tuple__5; |
| static PyObject *__pyx_tuple__6; |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| static PyObject *__pyx_f_5kenlm_as_str(PyObject *__pyx_v_data) { |
| 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; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("as_str", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = PyBytes_Check(__pyx_v_data); |
| __pyx_t_2 = (__pyx_t_1 != 0); |
| if (__pyx_t_2) { |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| if (!(likely(PyBytes_CheckExact(__pyx_v_data))||((__pyx_v_data) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_data)->tp_name), 0))) __PYX_ERR(0, 6, __pyx_L1_error) |
| __Pyx_INCREF(__pyx_v_data); |
| __pyx_r = ((PyObject*)__pyx_v_data); |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = PyUnicode_Check(__pyx_v_data); |
| __pyx_t_1 = (__pyx_t_2 != 0); |
| if (__pyx_t_1) { |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_encode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_4); |
| __pyx_t_5 = NULL; |
| if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { |
| __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); |
| if (likely(__pyx_t_5)) { |
| PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); |
| __Pyx_INCREF(__pyx_t_5); |
| __Pyx_INCREF(function); |
| __Pyx_DECREF_SET(__pyx_t_4, function); |
| } |
| } |
| __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_n_u_utf8) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_n_u_utf8); |
| __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; |
| if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; |
| if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 8, __pyx_L1_error) |
| __pyx_r = ((PyObject*)__pyx_t_3); |
| __pyx_t_3 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Cannot_convert_s_to_string, ((PyObject *)Py_TYPE(__pyx_v_data))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 9, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 9, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_4); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __Pyx_Raise(__pyx_t_4, 0, 0, 0); |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; |
| __PYX_ERR(0, 9, __pyx_L1_error) |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_3); |
| __Pyx_XDECREF(__pyx_t_4); |
| __Pyx_XDECREF(__pyx_t_5); |
| __Pyx_AddTraceback("kenlm.as_str", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = 0; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static int __pyx_pw_5kenlm_15FullScoreReturn_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); |
| static int __pyx_pw_5kenlm_15FullScoreReturn_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { |
| PyObject *__pyx_v_log_prob = 0; |
| PyObject *__pyx_v_ngram_length = 0; |
| PyObject *__pyx_v_oov = 0; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); |
| { |
| static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_log_prob,&__pyx_n_s_ngram_length,&__pyx_n_s_oov,0}; |
| PyObject* values[3] = {0,0,0}; |
| if (unlikely(__pyx_kwds)) { |
| Py_ssize_t kw_args; |
| const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); |
| switch (pos_args) { |
| case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); |
| CYTHON_FALLTHROUGH; |
| case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| CYTHON_FALLTHROUGH; |
| case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| CYTHON_FALLTHROUGH; |
| case 0: break; |
| default: goto __pyx_L5_argtuple_error; |
| } |
| kw_args = PyDict_Size(__pyx_kwds); |
| switch (pos_args) { |
| case 0: |
| if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_log_prob)) != 0)) kw_args--; |
| else goto __pyx_L5_argtuple_error; |
| CYTHON_FALLTHROUGH; |
| case 1: |
| if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ngram_length)) != 0)) kw_args--; |
| else { |
| __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); __PYX_ERR(0, 24, __pyx_L3_error) |
| } |
| CYTHON_FALLTHROUGH; |
| case 2: |
| if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_oov)) != 0)) kw_args--; |
| else { |
| __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); __PYX_ERR(0, 24, __pyx_L3_error) |
| } |
| } |
| if (unlikely(kw_args > 0)) { |
| if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 24, __pyx_L3_error) |
| } |
| } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { |
| goto __pyx_L5_argtuple_error; |
| } else { |
| values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| values[2] = PyTuple_GET_ITEM(__pyx_args, 2); |
| } |
| __pyx_v_log_prob = values[0]; |
| __pyx_v_ngram_length = values[1]; |
| __pyx_v_oov = values[2]; |
| } |
| goto __pyx_L4_argument_unpacking_done; |
| __pyx_L5_argtuple_error:; |
| __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 24, __pyx_L3_error) |
| __pyx_L3_error:; |
| __Pyx_AddTraceback("kenlm.FullScoreReturn.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __Pyx_RefNannyFinishContext(); |
| return -1; |
| __pyx_L4_argument_unpacking_done:; |
| __pyx_r = __pyx_pf_5kenlm_15FullScoreReturn___cinit__(((struct __pyx_obj_5kenlm_FullScoreReturn *)__pyx_v_self), __pyx_v_log_prob, __pyx_v_ngram_length, __pyx_v_oov); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static int __pyx_pf_5kenlm_15FullScoreReturn___cinit__(struct __pyx_obj_5kenlm_FullScoreReturn *__pyx_v_self, PyObject *__pyx_v_log_prob, PyObject *__pyx_v_ngram_length, PyObject *__pyx_v_oov) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| float __pyx_t_1; |
| int __pyx_t_2; |
| int __pyx_t_3; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("__cinit__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __pyx_PyFloat_AsFloat(__pyx_v_log_prob); if (unlikely((__pyx_t_1 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 25, __pyx_L1_error) |
| __pyx_v_self->log_prob = __pyx_t_1; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_ngram_length); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) |
| __pyx_v_self->ngram_length = __pyx_t_2; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_oov); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 27, __pyx_L1_error) |
| __pyx_v_self->oov = __pyx_t_3; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_r = 0; |
| goto __pyx_L0; |
| __pyx_L1_error:; |
| __Pyx_AddTraceback("kenlm.FullScoreReturn.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = -1; |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_3__repr__(PyObject *__pyx_v_self); |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_3__repr__(PyObject *__pyx_v_self) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_15FullScoreReturn_2__repr__(((struct __pyx_obj_5kenlm_FullScoreReturn *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_2__repr__(struct __pyx_obj_5kenlm_FullScoreReturn *__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 = NULL; |
| PyObject *__pyx_t_7 = NULL; |
| int __pyx_t_8; |
| PyObject *__pyx_t_9 = NULL; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("__repr__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1_2_3, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_4); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->log_prob); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __pyx_t_5 = PyObject_Repr(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_5); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->ngram_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __pyx_t_6 = PyObject_Repr(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_6); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_self->oov); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __pyx_t_7 = PyObject_Repr(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_7); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __pyx_t_3 = NULL; |
| __pyx_t_8 = 0; |
| if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { |
| __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); |
| if (likely(__pyx_t_3)) { |
| PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); |
| __Pyx_INCREF(__pyx_t_3); |
| __Pyx_INCREF(function); |
| __Pyx_DECREF_SET(__pyx_t_2, function); |
| __pyx_t_8 = 1; |
| } |
| } |
| #if CYTHON_FAST_PYCALL |
| if (PyFunction_Check(__pyx_t_2)) { |
| PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7}; |
| __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; |
| __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; |
| __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; |
| __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; |
| } else |
| #endif |
| #if CYTHON_FAST_PYCCALL |
| if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { |
| PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_t_6, __pyx_t_7}; |
| __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; |
| __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; |
| __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; |
| __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; |
| } else |
| #endif |
| { |
| __pyx_t_9 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_9); |
| if (__pyx_t_3) { |
| __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); __pyx_t_3 = NULL; |
| } |
| __Pyx_GIVEREF(__pyx_t_4); |
| PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_4); |
| __Pyx_GIVEREF(__pyx_t_5); |
| PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); |
| __Pyx_GIVEREF(__pyx_t_6); |
| PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_6); |
| __Pyx_GIVEREF(__pyx_t_7); |
| PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_t_7); |
| __pyx_t_4 = 0; |
| __pyx_t_5 = 0; |
| __pyx_t_6 = 0; |
| __pyx_t_7 = 0; |
| __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; |
| } |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| 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_XDECREF(__pyx_t_6); |
| __Pyx_XDECREF(__pyx_t_7); |
| __Pyx_XDECREF(__pyx_t_9); |
| __Pyx_AddTraceback("kenlm.FullScoreReturn.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_8log_prob_1__get__(PyObject *__pyx_v_self); |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_8log_prob_1__get__(PyObject *__pyx_v_self) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_15FullScoreReturn_8log_prob___get__(((struct __pyx_obj_5kenlm_FullScoreReturn *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_8log_prob___get__(struct __pyx_obj_5kenlm_FullScoreReturn *__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); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->log_prob); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.FullScoreReturn.log_prob.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_12ngram_length_1__get__(PyObject *__pyx_v_self); |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_12ngram_length_1__get__(PyObject *__pyx_v_self) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_15FullScoreReturn_12ngram_length___get__(((struct __pyx_obj_5kenlm_FullScoreReturn *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_12ngram_length___get__(struct __pyx_obj_5kenlm_FullScoreReturn *__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); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ngram_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 38, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.FullScoreReturn.ngram_length.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_3oov_1__get__(PyObject *__pyx_v_self); |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_3oov_1__get__(PyObject *__pyx_v_self) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_15FullScoreReturn_3oov___get__(((struct __pyx_obj_5kenlm_FullScoreReturn *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_3oov___get__(struct __pyx_obj_5kenlm_FullScoreReturn *__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); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->oov); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.FullScoreReturn.oov.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_15FullScoreReturn_4__reduce_cython__(((struct __pyx_obj_5kenlm_FullScoreReturn *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_FullScoreReturn *__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("__reduce_cython__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __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(1, 2, __pyx_L1_error) |
|
|
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.FullScoreReturn.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); |
| static PyObject *__pyx_pw_5kenlm_15FullScoreReturn_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_15FullScoreReturn_6__setstate_cython__(((struct __pyx_obj_5kenlm_FullScoreReturn *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_15FullScoreReturn_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_FullScoreReturn *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { |
| 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("__setstate_cython__", 0); |
|
|
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __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(1, 4, __pyx_L1_error) |
|
|
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.FullScoreReturn.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5State_1__richcmp__(PyObject *__pyx_v_qa, PyObject *__pyx_v_qb, int __pyx_v_op); |
| static PyObject *__pyx_pw_5kenlm_5State_1__richcmp__(PyObject *__pyx_v_qa, PyObject *__pyx_v_qb, int __pyx_v_op) { |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0); |
| if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_qb), __pyx_ptype_5kenlm_State, 1, "qb", 0))) __PYX_ERR(0, 55, __pyx_L1_error) |
| __pyx_r = __pyx_pf_5kenlm_5State___richcmp__(((struct __pyx_obj_5kenlm_State *)__pyx_v_qa), ((struct __pyx_obj_5kenlm_State *)__pyx_v_qb), ((int)__pyx_v_op)); |
|
|
| |
| goto __pyx_L0; |
| __pyx_L1_error:; |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5State___richcmp__(struct __pyx_obj_5kenlm_State *__pyx_v_qa, struct __pyx_obj_5kenlm_State *__pyx_v_qb, int __pyx_v_op) { |
| int __pyx_v_r; |
| 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("__richcmp__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_v_r = __pyx_v_qa->_c_state.Compare(__pyx_v_qb->_c_state); |
|
|
| |
| |
| |
| |
| |
| |
| |
| switch (__pyx_v_op) { |
| case 0: |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_r < 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| break; |
| case 1: |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_r <= 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| break; |
| case 2: |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_r == 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| break; |
| case 3: |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_r != 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| break; |
| case 4: |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_r > 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| break; |
| default: |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_r >= 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
| break; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.State.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static Py_hash_t __pyx_pw_5kenlm_5State_3__hash__(PyObject *__pyx_v_self); |
| static Py_hash_t __pyx_pw_5kenlm_5State_3__hash__(PyObject *__pyx_v_self) { |
| Py_hash_t __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__hash__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5State_2__hash__(((struct __pyx_obj_5kenlm_State *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static Py_hash_t __pyx_pf_5kenlm_5State_2__hash__(struct __pyx_obj_5kenlm_State *__pyx_v_self) { |
| Py_hash_t __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__hash__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_r = lm::ngram::hash_value(__pyx_v_self->_c_state); |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L0:; |
| if (unlikely(__pyx_r == -1) && !PyErr_Occurred()) __pyx_r = -2; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5State_5__copy__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); |
| static PyObject *__pyx_pw_5kenlm_5State_5__copy__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__copy__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5State_4__copy__(((struct __pyx_obj_5kenlm_State *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5State_4__copy__(struct __pyx_obj_5kenlm_State *__pyx_v_self) { |
| struct __pyx_obj_5kenlm_State *__pyx_v_ret = NULL; |
| PyObject *__pyx_r = NULL; |
| __Pyx_RefNannyDeclarations |
| PyObject *__pyx_t_1 = NULL; |
| lm::ngram::State __pyx_t_2; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("__copy__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_5kenlm_State)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_v_ret = ((struct __pyx_obj_5kenlm_State *)__pyx_t_1); |
| __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __pyx_v_self->_c_state; |
| __pyx_v_ret->_c_state = __pyx_t_2; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __Pyx_INCREF(((PyObject *)__pyx_v_ret)); |
| __pyx_r = ((PyObject *)__pyx_v_ret); |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.State.__copy__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XDECREF((PyObject *)__pyx_v_ret); |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5State_7__deepcopy__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); |
| static PyObject *__pyx_pw_5kenlm_5State_7__deepcopy__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__deepcopy__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5State_6__deepcopy__(((struct __pyx_obj_5kenlm_State *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5State_6__deepcopy__(struct __pyx_obj_5kenlm_State *__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("__deepcopy__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| __pyx_t_3 = NULL; |
| if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { |
| __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); |
| if (likely(__pyx_t_3)) { |
| PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); |
| __Pyx_INCREF(__pyx_t_3); |
| __Pyx_INCREF(function); |
| __Pyx_DECREF_SET(__pyx_t_2, function); |
| } |
| } |
| __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); |
| __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; |
| if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_XDECREF(__pyx_t_2); |
| __Pyx_XDECREF(__pyx_t_3); |
| __Pyx_AddTraceback("kenlm.State.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5State_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); |
| static PyObject *__pyx_pw_5kenlm_5State_9__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5State_8__reduce_cython__(((struct __pyx_obj_5kenlm_State *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5State_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_State *__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("__reduce_cython__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __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(1, 2, __pyx_L1_error) |
|
|
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.State.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5State_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); |
| static PyObject *__pyx_pw_5kenlm_5State_11__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5State_10__setstate_cython__(((struct __pyx_obj_5kenlm_State *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5State_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_State *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { |
| 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("__setstate_cython__", 0); |
|
|
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __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(1, 4, __pyx_L1_error) |
|
|
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.State.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static int __pyx_pw_5kenlm_6Config_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); |
| static int __pyx_pw_5kenlm_6Config_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); |
| if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { |
| __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} |
| if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1; |
| __pyx_r = __pyx_pf_5kenlm_6Config___init__(((struct __pyx_obj_5kenlm_Config *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static int __pyx_pf_5kenlm_6Config___init__(struct __pyx_obj_5kenlm_Config *__pyx_v_self) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__init__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_v_self->_c_config = lm::ngram::Config(); |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_r = 0; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_6Config_11load_method_1__get__(PyObject *__pyx_v_self); |
| static PyObject *__pyx_pw_5kenlm_6Config_11load_method_1__get__(PyObject *__pyx_v_self) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_6Config_11load_method___get__(((struct __pyx_obj_5kenlm_Config *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_6Config_11load_method___get__(struct __pyx_obj_5kenlm_Config *__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); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyInt_From_enum__util_3a__3a_LoadMethod(__pyx_v_self->_c_config.load_method); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.Config.load_method.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static int __pyx_pw_5kenlm_6Config_11load_method_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_to); |
| static int __pyx_pw_5kenlm_6Config_11load_method_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_to) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_6Config_11load_method_2__set__(((struct __pyx_obj_5kenlm_Config *)__pyx_v_self), ((PyObject *)__pyx_v_to)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static int __pyx_pf_5kenlm_6Config_11load_method_2__set__(struct __pyx_obj_5kenlm_Config *__pyx_v_self, PyObject *__pyx_v_to) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| enum util::LoadMethod __pyx_t_1; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("__set__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = ((enum util::LoadMethod)__Pyx_PyInt_As_enum__util_3a__3a_LoadMethod(__pyx_v_to)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 107, __pyx_L1_error) |
| __pyx_v_self->_c_config.load_method = __pyx_t_1; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_r = 0; |
| goto __pyx_L0; |
| __pyx_L1_error:; |
| __Pyx_AddTraceback("kenlm.Config.load_method.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = -1; |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_6Config_13show_progress_1__get__(PyObject *__pyx_v_self); |
| static PyObject *__pyx_pw_5kenlm_6Config_13show_progress_1__get__(PyObject *__pyx_v_self) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_6Config_13show_progress___get__(((struct __pyx_obj_5kenlm_Config *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_6Config_13show_progress___get__(struct __pyx_obj_5kenlm_Config *__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); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_c_config.show_progress); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.Config.show_progress.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static int __pyx_pw_5kenlm_6Config_13show_progress_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_to); |
| static int __pyx_pw_5kenlm_6Config_13show_progress_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_to) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_6Config_13show_progress_2__set__(((struct __pyx_obj_5kenlm_Config *)__pyx_v_self), ((PyObject *)__pyx_v_to)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static int __pyx_pf_5kenlm_6Config_13show_progress_2__set__(struct __pyx_obj_5kenlm_Config *__pyx_v_self, PyObject *__pyx_v_to) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| bool __pyx_t_1; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("__set__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_to); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 113, __pyx_L1_error) |
| __pyx_v_self->_c_config.show_progress = __pyx_t_1; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_r = 0; |
| goto __pyx_L0; |
| __pyx_L1_error:; |
| __Pyx_AddTraceback("kenlm.Config.show_progress.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = -1; |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_6Config_13arpa_complain_1__get__(PyObject *__pyx_v_self); |
| static PyObject *__pyx_pw_5kenlm_6Config_13arpa_complain_1__get__(PyObject *__pyx_v_self) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_6Config_13arpa_complain___get__(((struct __pyx_obj_5kenlm_Config *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_6Config_13arpa_complain___get__(struct __pyx_obj_5kenlm_Config *__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); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyInt_From_enum__lm_3a__3a_ngram_3a__3a_Config_3a__3a_ARPALoadComplain(__pyx_v_self->_c_config.arpa_complain); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.Config.arpa_complain.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static int __pyx_pw_5kenlm_6Config_13arpa_complain_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_to); |
| static int __pyx_pw_5kenlm_6Config_13arpa_complain_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_to) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_6Config_13arpa_complain_2__set__(((struct __pyx_obj_5kenlm_Config *)__pyx_v_self), ((PyObject *)__pyx_v_to)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static int __pyx_pf_5kenlm_6Config_13arpa_complain_2__set__(struct __pyx_obj_5kenlm_Config *__pyx_v_self, PyObject *__pyx_v_to) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| enum lm::ngram::Config::ARPALoadComplain __pyx_t_1; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("__set__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = ((enum lm::ngram::Config::ARPALoadComplain)__Pyx_PyInt_As_enum__lm_3a__3a_ngram_3a__3a_Config_3a__3a_ARPALoadComplain(__pyx_v_to)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 119, __pyx_L1_error) |
| __pyx_v_self->_c_config.arpa_complain = __pyx_t_1; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_r = 0; |
| goto __pyx_L0; |
| __pyx_L1_error:; |
| __Pyx_AddTraceback("kenlm.Config.arpa_complain.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = -1; |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_6Config_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); |
| static PyObject *__pyx_pw_5kenlm_6Config_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_6Config_2__reduce_cython__(((struct __pyx_obj_5kenlm_Config *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_6Config_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_Config *__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("__reduce_cython__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __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(1, 2, __pyx_L1_error) |
|
|
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.Config.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_6Config_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); |
| static PyObject *__pyx_pw_5kenlm_6Config_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_6Config_4__setstate_cython__(((struct __pyx_obj_5kenlm_Config *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_6Config_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5kenlm_Config *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { |
| 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("__setstate_cython__", 0); |
|
|
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __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(1, 4, __pyx_L1_error) |
|
|
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.Config.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static int __pyx_pw_5kenlm_5Model_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); |
| static char __pyx_doc_5kenlm_5Model___init__[] = "\n Load the language model.\n\n :param path: path to an arpa file or a kenlm binary file.\n :param config: configuration options (see lm/config.hh for documentation)\n "; |
| #if CYTHON_COMPILING_IN_CPYTHON |
| struct wrapperbase __pyx_wrapperbase_5kenlm_5Model___init__; |
| #endif |
| static int __pyx_pw_5kenlm_5Model_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { |
| PyObject *__pyx_v_path = 0; |
| struct __pyx_obj_5kenlm_Config *__pyx_v_config = 0; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); |
| { |
| static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,&__pyx_n_s_config,0}; |
| PyObject* values[2] = {0,0}; |
| values[1] = (PyObject *)__pyx_k__7; |
| if (unlikely(__pyx_kwds)) { |
| Py_ssize_t kw_args; |
| const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); |
| switch (pos_args) { |
| case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| CYTHON_FALLTHROUGH; |
| case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| CYTHON_FALLTHROUGH; |
| case 0: break; |
| default: goto __pyx_L5_argtuple_error; |
| } |
| kw_args = PyDict_Size(__pyx_kwds); |
| switch (pos_args) { |
| case 0: |
| if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_path)) != 0)) kw_args--; |
| else goto __pyx_L5_argtuple_error; |
| CYTHON_FALLTHROUGH; |
| case 1: |
| if (kw_args > 0) { |
| PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_config); |
| if (value) { values[1] = value; kw_args--; } |
| } |
| } |
| if (unlikely(kw_args > 0)) { |
| if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 130, __pyx_L3_error) |
| } |
| } else { |
| switch (PyTuple_GET_SIZE(__pyx_args)) { |
| case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| CYTHON_FALLTHROUGH; |
| case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| break; |
| default: goto __pyx_L5_argtuple_error; |
| } |
| } |
| __pyx_v_path = values[0]; |
| __pyx_v_config = ((struct __pyx_obj_5kenlm_Config *)values[1]); |
| } |
| goto __pyx_L4_argument_unpacking_done; |
| __pyx_L5_argtuple_error:; |
| __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 130, __pyx_L3_error) |
| __pyx_L3_error:; |
| __Pyx_AddTraceback("kenlm.Model.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __Pyx_RefNannyFinishContext(); |
| return -1; |
| __pyx_L4_argument_unpacking_done:; |
| if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_config), __pyx_ptype_5kenlm_Config, 1, "config", 0))) __PYX_ERR(0, 130, __pyx_L1_error) |
| __pyx_r = __pyx_pf_5kenlm_5Model___init__(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self), __pyx_v_path, __pyx_v_config); |
|
|
| |
| goto __pyx_L0; |
| __pyx_L1_error:; |
| __pyx_r = -1; |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static int __pyx_pf_5kenlm_5Model___init__(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_path, struct __pyx_obj_5kenlm_Config *__pyx_v_config) { |
| PyObject *__pyx_v_exception = NULL; |
| PyObject *__pyx_v_exception_message = NULL; |
| 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 = NULL; |
| PyObject *__pyx_t_6 = NULL; |
| PyObject *__pyx_t_7 = NULL; |
| char *__pyx_t_8; |
| lm::base::Model *__pyx_t_9; |
| int __pyx_t_10; |
| PyObject *__pyx_t_11 = NULL; |
| PyObject *__pyx_t_12 = NULL; |
| PyObject *__pyx_t_13 = NULL; |
| int __pyx_t_14; |
| char const *__pyx_t_15; |
| PyObject *__pyx_t_16 = NULL; |
| PyObject *__pyx_t_17 = NULL; |
| PyObject *__pyx_t_18 = NULL; |
| PyObject *__pyx_t_19 = NULL; |
| PyObject *__pyx_t_20 = NULL; |
| PyObject *__pyx_t_21 = NULL; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("__init__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 137, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
| __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_abspath); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __pyx_t_3 = __pyx_f_5kenlm_as_str(__pyx_v_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 137, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __pyx_t_4 = NULL; |
| if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { |
| __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); |
| if (likely(__pyx_t_4)) { |
| PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); |
| __Pyx_INCREF(__pyx_t_4); |
| __Pyx_INCREF(function); |
| __Pyx_DECREF_SET(__pyx_t_2, function); |
| } |
| } |
| __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); |
| __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, 137, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
| if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 137, __pyx_L1_error) |
| __Pyx_GIVEREF(__pyx_t_1); |
| __Pyx_GOTREF(__pyx_v_self->path); |
| __Pyx_DECREF(__pyx_v_self->path); |
| __pyx_v_self->path = ((PyObject*)__pyx_t_1); |
| __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| { |
| __Pyx_PyThreadState_declare |
| __Pyx_PyThreadState_assign |
| __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); |
| __Pyx_XGOTREF(__pyx_t_5); |
| __Pyx_XGOTREF(__pyx_t_6); |
| __Pyx_XGOTREF(__pyx_t_7); |
| { |
|
|
| |
| |
| |
| |
| |
| |
| |
| if (unlikely(__pyx_v_self->path == Py_None)) { |
| PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); |
| __PYX_ERR(0, 139, __pyx_L3_error) |
| } |
| __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->path); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L3_error) |
| try { |
| __pyx_t_9 = lm::ngram::LoadVirtual(__pyx_t_8, __pyx_v_config->_c_config); |
| } catch(...) { |
| __Pyx_CppExn2PyErr(); |
| __PYX_ERR(0, 139, __pyx_L3_error) |
| } |
| __pyx_v_self->model = __pyx_t_9; |
|
|
| |
| |
| |
| |
| |
| |
| |
| } |
| __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; |
| __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; |
| __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; |
| goto __pyx_L8_try_end; |
| __pyx_L3_error:; |
| __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; |
| __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_RuntimeError); |
| if (__pyx_t_10) { |
| __Pyx_AddTraceback("kenlm.Model.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(0, 140, __pyx_L5_except_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_GOTREF(__pyx_t_2); |
| __Pyx_GOTREF(__pyx_t_3); |
| __Pyx_INCREF(__pyx_t_2); |
| __pyx_v_exception = __pyx_t_2; |
| { |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyUnicode_Type)), __pyx_v_exception); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 141, __pyx_L14_error) |
| __Pyx_GOTREF(__pyx_t_4); |
| __pyx_t_11 = PyUnicode_Replace(((PyObject*)__pyx_t_4), __pyx_kp_u__8, __pyx_kp_u__9, -1L); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 141, __pyx_L14_error) |
| __Pyx_GOTREF(__pyx_t_11); |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; |
| __pyx_v_exception_message = __pyx_t_11; |
| __pyx_t_11 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Cannot_read_model, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 142, __pyx_L14_error) |
| __Pyx_GOTREF(__pyx_t_4); |
| __pyx_t_12 = NULL; |
| __pyx_t_10 = 0; |
| if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { |
| __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4); |
| if (likely(__pyx_t_12)) { |
| PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); |
| __Pyx_INCREF(__pyx_t_12); |
| __Pyx_INCREF(function); |
| __Pyx_DECREF_SET(__pyx_t_4, function); |
| __pyx_t_10 = 1; |
| } |
| } |
| #if CYTHON_FAST_PYCALL |
| if (PyFunction_Check(__pyx_t_4)) { |
| PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_v_path, __pyx_v_exception_message}; |
| __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 142, __pyx_L14_error) |
| __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; |
| __Pyx_GOTREF(__pyx_t_11); |
| } else |
| #endif |
| #if CYTHON_FAST_PYCCALL |
| if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { |
| PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_v_path, __pyx_v_exception_message}; |
| __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 142, __pyx_L14_error) |
| __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; |
| __Pyx_GOTREF(__pyx_t_11); |
| } else |
| #endif |
| { |
| __pyx_t_13 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 142, __pyx_L14_error) |
| __Pyx_GOTREF(__pyx_t_13); |
| if (__pyx_t_12) { |
| __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL; |
| } |
| __Pyx_INCREF(__pyx_v_path); |
| __Pyx_GIVEREF(__pyx_v_path); |
| PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_10, __pyx_v_path); |
| __Pyx_INCREF(__pyx_v_exception_message); |
| __Pyx_GIVEREF(__pyx_v_exception_message); |
| PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_10, __pyx_v_exception_message); |
| __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 142, __pyx_L14_error) |
| __Pyx_GOTREF(__pyx_t_11); |
| __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; |
| } |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; |
| __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IOError, __pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 142, __pyx_L14_error) |
| __Pyx_GOTREF(__pyx_t_4); |
| __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_Raise(__pyx_t_4, 0, 0, __pyx_v_exception); |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; |
| __PYX_ERR(0, 142, __pyx_L14_error) |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| { |
| __pyx_L14_error:; |
| { |
| __Pyx_PyThreadState_declare |
| __Pyx_PyThreadState_assign |
| __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; |
| __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; |
| __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; |
| __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; |
| __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; |
| if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); |
| if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); |
| __Pyx_XGOTREF(__pyx_t_16); |
| __Pyx_XGOTREF(__pyx_t_17); |
| __Pyx_XGOTREF(__pyx_t_18); |
| __Pyx_XGOTREF(__pyx_t_19); |
| __Pyx_XGOTREF(__pyx_t_20); |
| __Pyx_XGOTREF(__pyx_t_21); |
| __pyx_t_10 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename; |
| { |
| __Pyx_DECREF(__pyx_v_exception); |
| __pyx_v_exception = NULL; |
| } |
| if (PY_MAJOR_VERSION >= 3) { |
| __Pyx_XGIVEREF(__pyx_t_19); |
| __Pyx_XGIVEREF(__pyx_t_20); |
| __Pyx_XGIVEREF(__pyx_t_21); |
| __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21); |
| } |
| __Pyx_XGIVEREF(__pyx_t_16); |
| __Pyx_XGIVEREF(__pyx_t_17); |
| __Pyx_XGIVEREF(__pyx_t_18); |
| __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18); |
| __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; |
| __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15; |
| goto __pyx_L5_except_error; |
| } |
| } |
| } |
| goto __pyx_L5_except_error; |
| __pyx_L5_except_error:; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XGIVEREF(__pyx_t_5); |
| __Pyx_XGIVEREF(__pyx_t_6); |
| __Pyx_XGIVEREF(__pyx_t_7); |
| __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); |
| goto __pyx_L1_error; |
| __pyx_L8_try_end:; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_v_self->vocab = (&__pyx_v_self->model->BaseVocabulary()); |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_r = 0; |
| 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_11); |
| __Pyx_XDECREF(__pyx_t_12); |
| __Pyx_XDECREF(__pyx_t_13); |
| __Pyx_AddTraceback("kenlm.Model.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = -1; |
| __pyx_L0:; |
| __Pyx_XDECREF(__pyx_v_exception); |
| __Pyx_XDECREF(__pyx_v_exception_message); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static void __pyx_pw_5kenlm_5Model_3__dealloc__(PyObject *__pyx_v_self); |
| static void __pyx_pw_5kenlm_5Model_3__dealloc__(PyObject *__pyx_v_self) { |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); |
| __pyx_pf_5kenlm_5Model_2__dealloc__(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| } |
|
|
| static void __pyx_pf_5kenlm_5Model_2__dealloc__(struct __pyx_obj_5kenlm_Model *__pyx_v_self) { |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__dealloc__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| delete __pyx_v_self->model; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5Model_5order_1__get__(PyObject *__pyx_v_self); |
| static PyObject *__pyx_pw_5kenlm_5Model_5order_1__get__(PyObject *__pyx_v_self) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5Model_5order___get__(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5Model_5order___get__(struct __pyx_obj_5kenlm_Model *__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); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->model->Order()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 151, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.Model.order.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5Model_5score(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); |
| static char __pyx_doc_5kenlm_5Model_4score[] = "\n Return the log10 probability of a string. By default, the string is\n treated as a sentence. \n return log10 p(sentence </s> | <s>)\n\n If you do not want to condition on the beginning of sentence, pass\n bos = False\n Never include <s> as part of the string. That would be predicting the\n beginning of sentence. Language models are only supposed to condition\n on it as context.\n\n Similarly, the end of sentence token </s> can be omitted with\n eos = False\n Since language models explicitly predict </s>, it can be part of the\n string.\n\n Examples:\n\n #Good: returns log10 p(this is a sentence . </s> | <s>)\n model.score(\"this is a sentence .\")\n #Good: same as the above but more explicit\n model.score(\"this is a sentence .\", bos = True, eos = True)\n\n #Bad: never include <s>\n model.score(\"<s> this is a sentence\")\n #Bad: never include <s>, even if bos = False.\n model.score(\"<s> this is a sentence\", bos = False)\n\n #Good: returns log10 p(a fragment)\n model.score(\"a fragment\", bos = False, eos = False)\n\n #Good: returns log10 p(a fragment </s>)\n model.score(\"a fragment\", bos = False, eos = True)\n\n #Ok, but bad practice: returns log10 p(a fragment </s>)\n #Unlike <s>, the end of sentence token </s> can appear explicitly.\n model.score(\"a fragment </s>\", bos = False, eos = False)\n "; |
| static PyObject *__pyx_pw_5kenlm_5Model_5score(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { |
| PyObject *__pyx_v_sentence = 0; |
| PyObject *__pyx_v_bos = 0; |
| PyObject *__pyx_v_eos = 0; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("score (wrapper)", 0); |
| { |
| static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sentence,&__pyx_n_s_bos,&__pyx_n_s_eos,0}; |
| PyObject* values[3] = {0,0,0}; |
| values[1] = ((PyObject *)Py_True); |
| values[2] = ((PyObject *)Py_True); |
| if (unlikely(__pyx_kwds)) { |
| Py_ssize_t kw_args; |
| const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); |
| switch (pos_args) { |
| case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); |
| CYTHON_FALLTHROUGH; |
| case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| CYTHON_FALLTHROUGH; |
| case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| CYTHON_FALLTHROUGH; |
| case 0: break; |
| default: goto __pyx_L5_argtuple_error; |
| } |
| kw_args = PyDict_Size(__pyx_kwds); |
| switch (pos_args) { |
| case 0: |
| if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sentence)) != 0)) kw_args--; |
| else goto __pyx_L5_argtuple_error; |
| CYTHON_FALLTHROUGH; |
| case 1: |
| if (kw_args > 0) { |
| PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bos); |
| if (value) { values[1] = value; kw_args--; } |
| } |
| CYTHON_FALLTHROUGH; |
| case 2: |
| if (kw_args > 0) { |
| PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eos); |
| if (value) { values[2] = value; kw_args--; } |
| } |
| } |
| if (unlikely(kw_args > 0)) { |
| if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "score") < 0)) __PYX_ERR(0, 153, __pyx_L3_error) |
| } |
| } else { |
| switch (PyTuple_GET_SIZE(__pyx_args)) { |
| case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); |
| CYTHON_FALLTHROUGH; |
| case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| CYTHON_FALLTHROUGH; |
| case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| break; |
| default: goto __pyx_L5_argtuple_error; |
| } |
| } |
| __pyx_v_sentence = values[0]; |
| __pyx_v_bos = values[1]; |
| __pyx_v_eos = values[2]; |
| } |
| goto __pyx_L4_argument_unpacking_done; |
| __pyx_L5_argtuple_error:; |
| __Pyx_RaiseArgtupleInvalid("score", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 153, __pyx_L3_error) |
| __pyx_L3_error:; |
| __Pyx_AddTraceback("kenlm.Model.score", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __Pyx_RefNannyFinishContext(); |
| return NULL; |
| __pyx_L4_argument_unpacking_done:; |
| __pyx_r = __pyx_pf_5kenlm_5Model_4score(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self), __pyx_v_sentence, __pyx_v_bos, __pyx_v_eos); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5Model_4score(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_sentence, PyObject *__pyx_v_bos, PyObject *__pyx_v_eos) { |
| PyObject *__pyx_v_words = 0; |
| lm::ngram::State __pyx_v_state; |
| lm::ngram::State __pyx_v_out_state; |
| float __pyx_v_total; |
| PyObject *__pyx_v_word = NULL; |
| PyObject *__pyx_r = NULL; |
| __Pyx_RefNannyDeclarations |
| int __pyx_t_1; |
| int __pyx_t_2; |
| PyObject *__pyx_t_3 = NULL; |
| char const *__pyx_t_4; |
| PyObject *__pyx_t_5 = NULL; |
| PyObject *__pyx_t_6 = NULL; |
| Py_ssize_t __pyx_t_7; |
| char *__pyx_t_8; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("score", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_bos); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 192, __pyx_L1_error) |
| if (__pyx_t_2) { |
| } else { |
| __pyx_t_1 = __pyx_t_2; |
| goto __pyx_L4_bool_binop_done; |
| } |
| __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_eos); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 192, __pyx_L1_error) |
| __pyx_t_1 = __pyx_t_2; |
| __pyx_L4_bool_binop_done:; |
| if (__pyx_t_1) { |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_3 = __pyx_f_5kenlm_as_str(__pyx_v_sentence); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 193, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| if (unlikely(__pyx_t_3 == Py_None)) { |
| PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); |
| __PYX_ERR(0, 193, __pyx_L1_error) |
| } |
| __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_3); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 193, __pyx_L1_error) |
| __pyx_t_5 = PyFloat_FromDouble(lm::base::ScoreSentence(__pyx_v_self->model, __pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 193, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_5); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __pyx_r = __pyx_t_5; |
| __pyx_t_5 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_3 = __pyx_f_5kenlm_as_str(__pyx_v_sentence); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 194, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 194, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_6); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __pyx_t_3 = NULL; |
| if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { |
| __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); |
| if (likely(__pyx_t_3)) { |
| PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); |
| __Pyx_INCREF(__pyx_t_3); |
| __Pyx_INCREF(function); |
| __Pyx_DECREF_SET(__pyx_t_6, function); |
| } |
| } |
| __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_6); |
| __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; |
| if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 194, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_5); |
| __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; |
| if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(0, 194, __pyx_L1_error) |
| __pyx_v_words = ((PyObject*)__pyx_t_5); |
| __pyx_t_5 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_bos); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 196, __pyx_L1_error) |
| if (__pyx_t_1) { |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_v_self->model->BeginSentenceWrite((&__pyx_v_state)); |
|
|
| |
| |
| |
| |
| |
| |
| |
| goto __pyx_L6; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| { |
| __pyx_v_self->model->NullContextWrite((&__pyx_v_state)); |
| } |
| __pyx_L6:; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_v_total = 0.0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| if (unlikely(__pyx_v_words == Py_None)) { |
| PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); |
| __PYX_ERR(0, 202, __pyx_L1_error) |
| } |
| __pyx_t_5 = __pyx_v_words; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0; |
| for (;;) { |
| if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break; |
| #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS |
| __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 202, __pyx_L1_error) |
| #else |
| __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 202, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_6); |
| #endif |
| __Pyx_XDECREF_SET(__pyx_v_word, __pyx_t_6); |
| __pyx_t_6 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_8 = __Pyx_PyObject_AsWritableString(__pyx_v_word); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L1_error) |
| __pyx_v_total = (__pyx_v_total + __pyx_v_self->model->BaseScore((&__pyx_v_state), __pyx_v_self->vocab->Index(__pyx_t_8), (&__pyx_v_out_state))); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_v_state = __pyx_v_out_state; |
|
|
| |
| |
| |
| |
| |
| |
| |
| } |
| __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_eos); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 205, __pyx_L1_error) |
| if (__pyx_t_1) { |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_v_total = (__pyx_v_total + __pyx_v_self->model->BaseScore((&__pyx_v_state), __pyx_v_self->vocab->EndSentence(), (&__pyx_v_out_state))); |
|
|
| |
| |
| |
| |
| |
| |
| |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_5 = PyFloat_FromDouble(__pyx_v_total); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 207, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_5); |
| __pyx_r = __pyx_t_5; |
| __pyx_t_5 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_3); |
| __Pyx_XDECREF(__pyx_t_5); |
| __Pyx_XDECREF(__pyx_t_6); |
| __Pyx_AddTraceback("kenlm.Model.score", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XDECREF(__pyx_v_words); |
| __Pyx_XDECREF(__pyx_v_word); |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5Model_7perplexity(PyObject *__pyx_v_self, PyObject *__pyx_v_sentence); |
| static char __pyx_doc_5kenlm_5Model_6perplexity[] = "\n Compute perplexity of a sentence.\n @param sentence One full sentence to score. Do not include <s> or </s>.\n "; |
| static PyObject *__pyx_pw_5kenlm_5Model_7perplexity(PyObject *__pyx_v_self, PyObject *__pyx_v_sentence) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("perplexity (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5Model_6perplexity(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self), ((PyObject *)__pyx_v_sentence)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5Model_6perplexity(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_sentence) { |
| PyObject *__pyx_v_words = NULL; |
| PyObject *__pyx_r = NULL; |
| __Pyx_RefNannyDeclarations |
| PyObject *__pyx_t_1 = NULL; |
| PyObject *__pyx_t_2 = NULL; |
| PyObject *__pyx_t_3 = NULL; |
| Py_ssize_t __pyx_t_4; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("perplexity", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __pyx_f_5kenlm_as_str(__pyx_v_sentence); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); 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_t_2 = NULL; |
| if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { |
| __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); |
| if (likely(__pyx_t_2)) { |
| PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); |
| __Pyx_INCREF(__pyx_t_2); |
| __Pyx_INCREF(function); |
| __Pyx_DECREF_SET(__pyx_t_3, function); |
| } |
| } |
| __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); |
| __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; |
| if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 214, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __pyx_t_4 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 214, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; |
| __pyx_t_1 = PyInt_FromSsize_t((__pyx_t_4 + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 214, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_v_words = __pyx_t_1; |
| __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_score); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 215, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __pyx_t_2 = NULL; |
| if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { |
| __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); |
| if (likely(__pyx_t_2)) { |
| PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); |
| __Pyx_INCREF(__pyx_t_2); |
| __Pyx_INCREF(function); |
| __Pyx_DECREF_SET(__pyx_t_3, function); |
| } |
| } |
| __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_sentence) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_sentence); |
| __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; |
| if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 215, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __pyx_t_3 = PyNumber_Negative(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 215, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; |
| __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_v_words); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 215, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __pyx_t_3 = PyNumber_Power(__pyx_float_10_0, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 215, __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; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_XDECREF(__pyx_t_2); |
| __Pyx_XDECREF(__pyx_t_3); |
| __Pyx_AddTraceback("kenlm.Model.perplexity", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XDECREF(__pyx_v_words); |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
| static PyObject *__pyx_gb_5kenlm_5Model_10generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5Model_9full_scores(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); |
| static char __pyx_doc_5kenlm_5Model_8full_scores[] = "\n full_scores(sentence, bos = True, eos = Ture) -> generate full scores (prob, ngram length, oov)\n @param sentence is a string (do not use boundary symbols)\n @param bos should kenlm add a bos state\n @param eos should kenlm add an eos state\n "; |
| static PyObject *__pyx_pw_5kenlm_5Model_9full_scores(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { |
| PyObject *__pyx_v_sentence = 0; |
| PyObject *__pyx_v_bos = 0; |
| PyObject *__pyx_v_eos = 0; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("full_scores (wrapper)", 0); |
| { |
| static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sentence,&__pyx_n_s_bos,&__pyx_n_s_eos,0}; |
| PyObject* values[3] = {0,0,0}; |
| values[1] = ((PyObject *)Py_True); |
| values[2] = ((PyObject *)Py_True); |
| if (unlikely(__pyx_kwds)) { |
| Py_ssize_t kw_args; |
| const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); |
| switch (pos_args) { |
| case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); |
| CYTHON_FALLTHROUGH; |
| case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| CYTHON_FALLTHROUGH; |
| case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| CYTHON_FALLTHROUGH; |
| case 0: break; |
| default: goto __pyx_L5_argtuple_error; |
| } |
| kw_args = PyDict_Size(__pyx_kwds); |
| switch (pos_args) { |
| case 0: |
| if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sentence)) != 0)) kw_args--; |
| else goto __pyx_L5_argtuple_error; |
| CYTHON_FALLTHROUGH; |
| case 1: |
| if (kw_args > 0) { |
| PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bos); |
| if (value) { values[1] = value; kw_args--; } |
| } |
| CYTHON_FALLTHROUGH; |
| case 2: |
| if (kw_args > 0) { |
| PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eos); |
| if (value) { values[2] = value; kw_args--; } |
| } |
| } |
| if (unlikely(kw_args > 0)) { |
| if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "full_scores") < 0)) __PYX_ERR(0, 217, __pyx_L3_error) |
| } |
| } else { |
| switch (PyTuple_GET_SIZE(__pyx_args)) { |
| case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); |
| CYTHON_FALLTHROUGH; |
| case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| CYTHON_FALLTHROUGH; |
| case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| break; |
| default: goto __pyx_L5_argtuple_error; |
| } |
| } |
| __pyx_v_sentence = values[0]; |
| __pyx_v_bos = values[1]; |
| __pyx_v_eos = values[2]; |
| } |
| goto __pyx_L4_argument_unpacking_done; |
| __pyx_L5_argtuple_error:; |
| __Pyx_RaiseArgtupleInvalid("full_scores", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 217, __pyx_L3_error) |
| __pyx_L3_error:; |
| __Pyx_AddTraceback("kenlm.Model.full_scores", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __Pyx_RefNannyFinishContext(); |
| return NULL; |
| __pyx_L4_argument_unpacking_done:; |
| __pyx_r = __pyx_pf_5kenlm_5Model_8full_scores(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self), __pyx_v_sentence, __pyx_v_bos, __pyx_v_eos); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5Model_8full_scores(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_sentence, PyObject *__pyx_v_bos, PyObject *__pyx_v_eos) { |
| struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *__pyx_cur_scope; |
| PyObject *__pyx_r = NULL; |
| __Pyx_RefNannyDeclarations |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("full_scores", 0); |
| __pyx_cur_scope = (struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *)__pyx_tp_new_5kenlm___pyx_scope_struct__full_scores(__pyx_ptype_5kenlm___pyx_scope_struct__full_scores, __pyx_empty_tuple, NULL); |
| if (unlikely(!__pyx_cur_scope)) { |
| __pyx_cur_scope = ((struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *)Py_None); |
| __Pyx_INCREF(Py_None); |
| __PYX_ERR(0, 217, __pyx_L1_error) |
| } else { |
| __Pyx_GOTREF(__pyx_cur_scope); |
| } |
| __pyx_cur_scope->__pyx_v_self = __pyx_v_self; |
| __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); |
| __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); |
| __pyx_cur_scope->__pyx_v_sentence = __pyx_v_sentence; |
| __Pyx_INCREF(__pyx_cur_scope->__pyx_v_sentence); |
| __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_sentence); |
| __pyx_cur_scope->__pyx_v_bos = __pyx_v_bos; |
| __Pyx_INCREF(__pyx_cur_scope->__pyx_v_bos); |
| __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_bos); |
| __pyx_cur_scope->__pyx_v_eos = __pyx_v_eos; |
| __Pyx_INCREF(__pyx_cur_scope->__pyx_v_eos); |
| __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_eos); |
| { |
| __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_5kenlm_5Model_10generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_full_scores, __pyx_n_s_Model_full_scores, __pyx_n_s_kenlm); if (unlikely(!gen)) __PYX_ERR(0, 217, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_cur_scope); |
| __Pyx_RefNannyFinishContext(); |
| return (PyObject *) gen; |
| } |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_AddTraceback("kenlm.Model.full_scores", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_gb_5kenlm_5Model_10generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) |
| { |
| struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *__pyx_cur_scope = ((struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *)__pyx_generator->closure); |
| PyObject *__pyx_r = NULL; |
| PyObject *__pyx_t_1 = NULL; |
| PyObject *__pyx_t_2 = NULL; |
| PyObject *__pyx_t_3 = NULL; |
| int __pyx_t_4; |
| Py_ssize_t __pyx_t_5; |
| char *__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_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("full_scores", 0); |
| switch (__pyx_generator->resume_label) { |
| case 0: goto __pyx_L3_first_run; |
| case 1: goto __pyx_L7_resume_from_yield; |
| case 2: goto __pyx_L9_resume_from_yield; |
| default: |
| __Pyx_RefNannyFinishContext(); |
| return NULL; |
| } |
| __pyx_L3_first_run:; |
| if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 217, __pyx_L1_error) |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __pyx_f_5kenlm_as_str(__pyx_cur_scope->__pyx_v_sentence); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); 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_t_2 = NULL; |
| if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { |
| __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); |
| if (likely(__pyx_t_2)) { |
| PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); |
| __Pyx_INCREF(__pyx_t_2); |
| __Pyx_INCREF(function); |
| __Pyx_DECREF_SET(__pyx_t_3, function); |
| } |
| } |
| __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); |
| __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; |
| if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 224, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 224, __pyx_L1_error) |
| __Pyx_GIVEREF(__pyx_t_1); |
| __pyx_cur_scope->__pyx_v_words = ((PyObject*)__pyx_t_1); |
| __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_bos); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 226, __pyx_L1_error) |
| if (__pyx_t_4) { |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_cur_scope->__pyx_v_self->model->BeginSentenceWrite((&__pyx_cur_scope->__pyx_v_state)); |
|
|
| |
| |
| |
| |
| |
| |
| |
| goto __pyx_L4; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| { |
| __pyx_cur_scope->__pyx_v_self->model->NullContextWrite((&__pyx_cur_scope->__pyx_v_state)); |
| } |
| __pyx_L4:; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_cur_scope->__pyx_v_total = 0.0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| if (unlikely(__pyx_cur_scope->__pyx_v_words == Py_None)) { |
| PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); |
| __PYX_ERR(0, 234, __pyx_L1_error) |
| } |
| __pyx_t_1 = __pyx_cur_scope->__pyx_v_words; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; |
| for (;;) { |
| if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; |
| #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS |
| __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 234, __pyx_L1_error) |
| #else |
| __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| #endif |
| __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_word); |
| __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_word, __pyx_t_3); |
| __Pyx_GIVEREF(__pyx_t_3); |
| __pyx_t_3 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_6 = __Pyx_PyObject_AsWritableString(__pyx_cur_scope->__pyx_v_word); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(0, 235, __pyx_L1_error) |
| __pyx_cur_scope->__pyx_v_wid = __pyx_cur_scope->__pyx_v_self->vocab->Index(__pyx_t_6); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_cur_scope->__pyx_v_ret = __pyx_cur_scope->__pyx_v_self->model->BaseFullScore((&__pyx_cur_scope->__pyx_v_state), __pyx_cur_scope->__pyx_v_wid, (&__pyx_cur_scope->__pyx_v_out_state)); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_3 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_ret.prob); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 237, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __pyx_t_2 = __Pyx_PyInt_From_unsigned_char(__pyx_cur_scope->__pyx_v_ret.ngram_length); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| __pyx_t_7 = __Pyx_PyBool_FromLong((__pyx_cur_scope->__pyx_v_wid == 0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 237, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_7); |
| __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 237, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_8); |
| __Pyx_GIVEREF(__pyx_t_3); |
| PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); |
| __Pyx_GIVEREF(__pyx_t_2); |
| PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2); |
| __Pyx_GIVEREF(__pyx_t_7); |
| PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); |
| __pyx_t_3 = 0; |
| __pyx_t_2 = 0; |
| __pyx_t_7 = 0; |
| __pyx_r = __pyx_t_8; |
| __pyx_t_8 = 0; |
| __Pyx_XGIVEREF(__pyx_t_1); |
| __pyx_cur_scope->__pyx_t_0 = __pyx_t_1; |
| __pyx_cur_scope->__pyx_t_1 = __pyx_t_5; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| __Pyx_Coroutine_ResetAndClearException(__pyx_generator); |
| |
| __pyx_generator->resume_label = 1; |
| return __pyx_r; |
| __pyx_L7_resume_from_yield:; |
| __pyx_t_1 = __pyx_cur_scope->__pyx_t_0; |
| __pyx_cur_scope->__pyx_t_0 = 0; |
| __Pyx_XGOTREF(__pyx_t_1); |
| __pyx_t_5 = __pyx_cur_scope->__pyx_t_1; |
| if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 237, __pyx_L1_error) |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_cur_scope->__pyx_v_state = __pyx_cur_scope->__pyx_v_out_state; |
|
|
| |
| |
| |
| |
| |
| |
| |
| } |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_eos); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 239, __pyx_L1_error) |
| if (__pyx_t_4) { |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_cur_scope->__pyx_v_ret = __pyx_cur_scope->__pyx_v_self->model->BaseFullScore((&__pyx_cur_scope->__pyx_v_state), __pyx_cur_scope->__pyx_v_self->vocab->EndSentence(), (&__pyx_cur_scope->__pyx_v_out_state)); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = PyFloat_FromDouble(__pyx_cur_scope->__pyx_v_ret.prob); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 242, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_t_8 = __Pyx_PyInt_From_unsigned_char(__pyx_cur_scope->__pyx_v_ret.ngram_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 242, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_8); |
| __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 242, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_7); |
| __Pyx_GIVEREF(__pyx_t_1); |
| PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); |
| __Pyx_GIVEREF(__pyx_t_8); |
| PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8); |
| __Pyx_INCREF(Py_False); |
| __Pyx_GIVEREF(Py_False); |
| PyTuple_SET_ITEM(__pyx_t_7, 2, Py_False); |
| __pyx_t_1 = 0; |
| __pyx_t_8 = 0; |
| __pyx_r = __pyx_t_7; |
| __pyx_t_7 = 0; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| __Pyx_Coroutine_ResetAndClearException(__pyx_generator); |
| |
| __pyx_generator->resume_label = 2; |
| return __pyx_r; |
| __pyx_L9_resume_from_yield:; |
| if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 242, __pyx_L1_error) |
|
|
| |
| |
| |
| |
| |
| |
| |
| } |
| CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope); |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| PyErr_SetNone(PyExc_StopIteration); |
| 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_7); |
| __Pyx_XDECREF(__pyx_t_8); |
| __Pyx_AddTraceback("full_scores", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_L0:; |
| __Pyx_XDECREF(__pyx_r); __pyx_r = 0; |
| #if !CYTHON_USE_EXC_INFO_STACK |
| __Pyx_Coroutine_ResetAndClearException(__pyx_generator); |
| #endif |
| __pyx_generator->resume_label = -1; |
| __Pyx_Coroutine_clear((PyObject*)__pyx_generator); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5Model_12BeginSentenceWrite(PyObject *__pyx_v_self, PyObject *__pyx_v_state); |
| static char __pyx_doc_5kenlm_5Model_11BeginSentenceWrite[] = "Change the given state to a BOS state."; |
| static PyObject *__pyx_pw_5kenlm_5Model_12BeginSentenceWrite(PyObject *__pyx_v_self, PyObject *__pyx_v_state) { |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("BeginSentenceWrite (wrapper)", 0); |
| if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_state), __pyx_ptype_5kenlm_State, 1, "state", 0))) __PYX_ERR(0, 245, __pyx_L1_error) |
| __pyx_r = __pyx_pf_5kenlm_5Model_11BeginSentenceWrite(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self), ((struct __pyx_obj_5kenlm_State *)__pyx_v_state)); |
|
|
| |
| goto __pyx_L0; |
| __pyx_L1_error:; |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5Model_11BeginSentenceWrite(struct __pyx_obj_5kenlm_Model *__pyx_v_self, struct __pyx_obj_5kenlm_State *__pyx_v_state) { |
| PyObject *__pyx_r = NULL; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("BeginSentenceWrite", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_v_self->model->BeginSentenceWrite((&__pyx_v_state->_c_state)); |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_r = Py_None; __Pyx_INCREF(Py_None); |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5Model_14NullContextWrite(PyObject *__pyx_v_self, PyObject *__pyx_v_state); |
| static char __pyx_doc_5kenlm_5Model_13NullContextWrite[] = "Change the given state to a NULL state."; |
| static PyObject *__pyx_pw_5kenlm_5Model_14NullContextWrite(PyObject *__pyx_v_self, PyObject *__pyx_v_state) { |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("NullContextWrite (wrapper)", 0); |
| if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_state), __pyx_ptype_5kenlm_State, 1, "state", 0))) __PYX_ERR(0, 249, __pyx_L1_error) |
| __pyx_r = __pyx_pf_5kenlm_5Model_13NullContextWrite(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self), ((struct __pyx_obj_5kenlm_State *)__pyx_v_state)); |
|
|
| |
| goto __pyx_L0; |
| __pyx_L1_error:; |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5Model_13NullContextWrite(struct __pyx_obj_5kenlm_Model *__pyx_v_self, struct __pyx_obj_5kenlm_State *__pyx_v_state) { |
| PyObject *__pyx_r = NULL; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("NullContextWrite", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_v_self->model->NullContextWrite((&__pyx_v_state->_c_state)); |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_r = Py_None; __Pyx_INCREF(Py_None); |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5Model_16BaseScore(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); |
| static char __pyx_doc_5kenlm_5Model_15BaseScore[] = "\n Return p(word|in_state) and update the output state.\n Wrapper around model.BaseScore(in_state, Index(word), out_state)\n\n :param word: the suffix\n :param state: the context (defaults to NullContext)\n :returns: p(word|state)\n "; |
| static PyObject *__pyx_pw_5kenlm_5Model_16BaseScore(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { |
| struct __pyx_obj_5kenlm_State *__pyx_v_in_state = 0; |
| PyObject *__pyx_v_word = 0; |
| struct __pyx_obj_5kenlm_State *__pyx_v_out_state = 0; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("BaseScore (wrapper)", 0); |
| { |
| static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_in_state,&__pyx_n_s_word,&__pyx_n_s_out_state,0}; |
| PyObject* values[3] = {0,0,0}; |
| if (unlikely(__pyx_kwds)) { |
| Py_ssize_t kw_args; |
| const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); |
| switch (pos_args) { |
| case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); |
| CYTHON_FALLTHROUGH; |
| case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| CYTHON_FALLTHROUGH; |
| case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| CYTHON_FALLTHROUGH; |
| case 0: break; |
| default: goto __pyx_L5_argtuple_error; |
| } |
| kw_args = PyDict_Size(__pyx_kwds); |
| switch (pos_args) { |
| case 0: |
| if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in_state)) != 0)) kw_args--; |
| else goto __pyx_L5_argtuple_error; |
| CYTHON_FALLTHROUGH; |
| case 1: |
| if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_word)) != 0)) kw_args--; |
| else { |
| __Pyx_RaiseArgtupleInvalid("BaseScore", 1, 3, 3, 1); __PYX_ERR(0, 253, __pyx_L3_error) |
| } |
| CYTHON_FALLTHROUGH; |
| case 2: |
| if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out_state)) != 0)) kw_args--; |
| else { |
| __Pyx_RaiseArgtupleInvalid("BaseScore", 1, 3, 3, 2); __PYX_ERR(0, 253, __pyx_L3_error) |
| } |
| } |
| if (unlikely(kw_args > 0)) { |
| if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "BaseScore") < 0)) __PYX_ERR(0, 253, __pyx_L3_error) |
| } |
| } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { |
| goto __pyx_L5_argtuple_error; |
| } else { |
| values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| values[2] = PyTuple_GET_ITEM(__pyx_args, 2); |
| } |
| __pyx_v_in_state = ((struct __pyx_obj_5kenlm_State *)values[0]); |
| __pyx_v_word = ((PyObject*)values[1]); |
| __pyx_v_out_state = ((struct __pyx_obj_5kenlm_State *)values[2]); |
| } |
| goto __pyx_L4_argument_unpacking_done; |
| __pyx_L5_argtuple_error:; |
| __Pyx_RaiseArgtupleInvalid("BaseScore", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 253, __pyx_L3_error) |
| __pyx_L3_error:; |
| __Pyx_AddTraceback("kenlm.Model.BaseScore", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __Pyx_RefNannyFinishContext(); |
| return NULL; |
| __pyx_L4_argument_unpacking_done:; |
| if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_in_state), __pyx_ptype_5kenlm_State, 1, "in_state", 0))) __PYX_ERR(0, 253, __pyx_L1_error) |
| if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_word), (&PyUnicode_Type), 1, "word", 1))) __PYX_ERR(0, 253, __pyx_L1_error) |
| if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out_state), __pyx_ptype_5kenlm_State, 1, "out_state", 0))) __PYX_ERR(0, 253, __pyx_L1_error) |
| __pyx_r = __pyx_pf_5kenlm_5Model_15BaseScore(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self), __pyx_v_in_state, __pyx_v_word, __pyx_v_out_state); |
|
|
| |
| goto __pyx_L0; |
| __pyx_L1_error:; |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5Model_15BaseScore(struct __pyx_obj_5kenlm_Model *__pyx_v_self, struct __pyx_obj_5kenlm_State *__pyx_v_in_state, PyObject *__pyx_v_word, struct __pyx_obj_5kenlm_State *__pyx_v_out_state) { |
| float __pyx_v_total; |
| PyObject *__pyx_r = NULL; |
| __Pyx_RefNannyDeclarations |
| PyObject *__pyx_t_1 = NULL; |
| char *__pyx_t_2; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("BaseScore", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __pyx_f_5kenlm_as_str(__pyx_v_word); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| if (unlikely(__pyx_t_1 == Py_None)) { |
| PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); |
| __PYX_ERR(0, 262, __pyx_L1_error) |
| } |
| __pyx_t_2 = __Pyx_PyBytes_AsWritableString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(0, 262, __pyx_L1_error) |
| __pyx_v_total = __pyx_v_self->model->BaseScore((&__pyx_v_in_state->_c_state), __pyx_v_self->vocab->Index(__pyx_t_2), (&__pyx_v_out_state->_c_state)); |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = PyFloat_FromDouble(__pyx_v_total); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.Model.BaseScore", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5Model_18BaseFullScore(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); |
| static char __pyx_doc_5kenlm_5Model_17BaseFullScore[] = "\n Wrapper around model.BaseScore(in_state, Index(word), out_state)\n\n :param word: the suffix\n :param state: the context (defaults to NullContext)\n :returns: FullScoreReturn(word|state)\n "; |
| static PyObject *__pyx_pw_5kenlm_5Model_18BaseFullScore(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { |
| struct __pyx_obj_5kenlm_State *__pyx_v_in_state = 0; |
| PyObject *__pyx_v_word = 0; |
| struct __pyx_obj_5kenlm_State *__pyx_v_out_state = 0; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("BaseFullScore (wrapper)", 0); |
| { |
| static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_in_state,&__pyx_n_s_word,&__pyx_n_s_out_state,0}; |
| PyObject* values[3] = {0,0,0}; |
| if (unlikely(__pyx_kwds)) { |
| Py_ssize_t kw_args; |
| const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); |
| switch (pos_args) { |
| case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); |
| CYTHON_FALLTHROUGH; |
| case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| CYTHON_FALLTHROUGH; |
| case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| CYTHON_FALLTHROUGH; |
| case 0: break; |
| default: goto __pyx_L5_argtuple_error; |
| } |
| kw_args = PyDict_Size(__pyx_kwds); |
| switch (pos_args) { |
| case 0: |
| if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_in_state)) != 0)) kw_args--; |
| else goto __pyx_L5_argtuple_error; |
| CYTHON_FALLTHROUGH; |
| case 1: |
| if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_word)) != 0)) kw_args--; |
| else { |
| __Pyx_RaiseArgtupleInvalid("BaseFullScore", 1, 3, 3, 1); __PYX_ERR(0, 265, __pyx_L3_error) |
| } |
| CYTHON_FALLTHROUGH; |
| case 2: |
| if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out_state)) != 0)) kw_args--; |
| else { |
| __Pyx_RaiseArgtupleInvalid("BaseFullScore", 1, 3, 3, 2); __PYX_ERR(0, 265, __pyx_L3_error) |
| } |
| } |
| if (unlikely(kw_args > 0)) { |
| if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "BaseFullScore") < 0)) __PYX_ERR(0, 265, __pyx_L3_error) |
| } |
| } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { |
| goto __pyx_L5_argtuple_error; |
| } else { |
| values[0] = PyTuple_GET_ITEM(__pyx_args, 0); |
| values[1] = PyTuple_GET_ITEM(__pyx_args, 1); |
| values[2] = PyTuple_GET_ITEM(__pyx_args, 2); |
| } |
| __pyx_v_in_state = ((struct __pyx_obj_5kenlm_State *)values[0]); |
| __pyx_v_word = ((PyObject*)values[1]); |
| __pyx_v_out_state = ((struct __pyx_obj_5kenlm_State *)values[2]); |
| } |
| goto __pyx_L4_argument_unpacking_done; |
| __pyx_L5_argtuple_error:; |
| __Pyx_RaiseArgtupleInvalid("BaseFullScore", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 265, __pyx_L3_error) |
| __pyx_L3_error:; |
| __Pyx_AddTraceback("kenlm.Model.BaseFullScore", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __Pyx_RefNannyFinishContext(); |
| return NULL; |
| __pyx_L4_argument_unpacking_done:; |
| if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_in_state), __pyx_ptype_5kenlm_State, 1, "in_state", 0))) __PYX_ERR(0, 265, __pyx_L1_error) |
| if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_word), (&PyUnicode_Type), 1, "word", 1))) __PYX_ERR(0, 265, __pyx_L1_error) |
| if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out_state), __pyx_ptype_5kenlm_State, 1, "out_state", 0))) __PYX_ERR(0, 265, __pyx_L1_error) |
| __pyx_r = __pyx_pf_5kenlm_5Model_17BaseFullScore(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self), __pyx_v_in_state, __pyx_v_word, __pyx_v_out_state); |
|
|
| |
| goto __pyx_L0; |
| __pyx_L1_error:; |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5Model_17BaseFullScore(struct __pyx_obj_5kenlm_Model *__pyx_v_self, struct __pyx_obj_5kenlm_State *__pyx_v_in_state, PyObject *__pyx_v_word, struct __pyx_obj_5kenlm_State *__pyx_v_out_state) { |
| lm::WordIndex __pyx_v_wid; |
| struct lm::FullScoreReturn __pyx_v_ret; |
| PyObject *__pyx_r = NULL; |
| __Pyx_RefNannyDeclarations |
| PyObject *__pyx_t_1 = NULL; |
| char *__pyx_t_2; |
| PyObject *__pyx_t_3 = NULL; |
| 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("BaseFullScore", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __pyx_f_5kenlm_as_str(__pyx_v_word); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| if (unlikely(__pyx_t_1 == Py_None)) { |
| PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); |
| __PYX_ERR(0, 273, __pyx_L1_error) |
| } |
| __pyx_t_2 = __Pyx_PyBytes_AsWritableString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(0, 273, __pyx_L1_error) |
| __pyx_v_wid = __pyx_v_self->vocab->Index(__pyx_t_2); |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_v_ret = __pyx_v_self->model->BaseFullScore((&__pyx_v_in_state->_c_state), __pyx_v_wid, (&__pyx_v_out_state->_c_state)); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = PyFloat_FromDouble(__pyx_v_ret.prob); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_t_3 = __Pyx_PyInt_From_unsigned_char(__pyx_v_ret.ngram_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 275, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __pyx_t_4 = __Pyx_PyBool_FromLong((__pyx_v_wid == 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 275, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_4); |
| __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 275, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_5); |
| __Pyx_GIVEREF(__pyx_t_1); |
| PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); |
| __Pyx_GIVEREF(__pyx_t_3); |
| PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); |
| __Pyx_GIVEREF(__pyx_t_4); |
| PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); |
| __pyx_t_1 = 0; |
| __pyx_t_3 = 0; |
| __pyx_t_4 = 0; |
| __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5kenlm_FullScoreReturn), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 275, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_4); |
| __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; |
| __pyx_r = __pyx_t_4; |
| __pyx_t_4 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_XDECREF(__pyx_t_3); |
| __Pyx_XDECREF(__pyx_t_4); |
| __Pyx_XDECREF(__pyx_t_5); |
| __Pyx_AddTraceback("kenlm.Model.BaseFullScore", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static int __pyx_pw_5kenlm_5Model_20__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_word); |
| static int __pyx_pw_5kenlm_5Model_20__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_word) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5Model_19__contains__(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self), ((PyObject *)__pyx_v_word)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static int __pyx_pf_5kenlm_5Model_19__contains__(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_word) { |
| PyObject *__pyx_v_w = 0; |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| PyObject *__pyx_t_1 = NULL; |
| char *__pyx_t_2; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("__contains__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __pyx_f_5kenlm_as_str(__pyx_v_word); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_v_w = ((PyObject*)__pyx_t_1); |
| __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| if (unlikely(__pyx_v_w == Py_None)) { |
| PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); |
| __PYX_ERR(0, 279, __pyx_L1_error) |
| } |
| __pyx_t_2 = __Pyx_PyBytes_AsWritableString(__pyx_v_w); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(0, 279, __pyx_L1_error) |
| __pyx_r = (__pyx_v_self->vocab->Index(__pyx_t_2) != 0); |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.Model.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = -1; |
| __pyx_L0:; |
| __Pyx_XDECREF(__pyx_v_w); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5Model_22__repr__(PyObject *__pyx_v_self); |
| static PyObject *__pyx_pw_5kenlm_5Model_22__repr__(PyObject *__pyx_v_self) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5Model_21__repr__(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5Model_21__repr__(struct __pyx_obj_5kenlm_Model *__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; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("__repr__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Model_from_0, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_4); |
| __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_path); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 282, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_5); |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; |
| __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_basename); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_4); |
| __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; |
| __pyx_t_5 = NULL; |
| if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { |
| __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); |
| if (likely(__pyx_t_5)) { |
| PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); |
| __Pyx_INCREF(__pyx_t_5); |
| __Pyx_INCREF(function); |
| __Pyx_DECREF_SET(__pyx_t_4, function); |
| } |
| } |
| __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_self->path) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_self->path); |
| __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; |
| if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 282, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; |
| __pyx_t_4 = NULL; |
| if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { |
| __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); |
| if (likely(__pyx_t_4)) { |
| PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); |
| __Pyx_INCREF(__pyx_t_4); |
| __Pyx_INCREF(function); |
| __Pyx_DECREF_SET(__pyx_t_2, function); |
| } |
| } |
| __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); |
| __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, 282, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
| __pyx_r = __pyx_t_1; |
| __pyx_t_1 = 0; |
| 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("kenlm.Model.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5Model_24__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); |
| static PyObject *__pyx_pw_5kenlm_5Model_24__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5Model_23__reduce__(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5Model_23__reduce__(struct __pyx_obj_5kenlm_Model *__pyx_v_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("__reduce__", 0); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __Pyx_XDECREF(__pyx_r); |
| __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 285, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_INCREF(__pyx_v_self->path); |
| __Pyx_GIVEREF(__pyx_v_self->path); |
| PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->path); |
| __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 285, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| __Pyx_INCREF(((PyObject *)__pyx_ptype_5kenlm_Model)); |
| __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5kenlm_Model)); |
| PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_5kenlm_Model)); |
| __Pyx_GIVEREF(__pyx_t_1); |
| PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1); |
| __pyx_t_1 = 0; |
| __pyx_r = __pyx_t_2; |
| __pyx_t_2 = 0; |
| goto __pyx_L0; |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_XDECREF(__pyx_t_2); |
| __Pyx_AddTraceback("kenlm.Model.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = NULL; |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| static PyObject *__pyx_pw_5kenlm_5Model_4path_1__get__(PyObject *__pyx_v_self); |
| static PyObject *__pyx_pw_5kenlm_5Model_4path_1__get__(PyObject *__pyx_v_self) { |
| PyObject *__pyx_r = 0; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5Model_4path___get__(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_pf_5kenlm_5Model_4path___get__(struct __pyx_obj_5kenlm_Model *__pyx_v_self) { |
| PyObject *__pyx_r = NULL; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__get__", 0); |
| __Pyx_XDECREF(__pyx_r); |
| __Pyx_INCREF(__pyx_v_self->path); |
| __pyx_r = __pyx_v_self->path; |
| goto __pyx_L0; |
|
|
| |
| __pyx_L0:; |
| __Pyx_XGIVEREF(__pyx_r); |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| static int __pyx_pw_5kenlm_5Model_4path_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); |
| static int __pyx_pw_5kenlm_5Model_4path_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5Model_4path_2__set__(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self), ((PyObject *)__pyx_v_value)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static int __pyx_pf_5kenlm_5Model_4path_2__set__(struct __pyx_obj_5kenlm_Model *__pyx_v_self, PyObject *__pyx_v_value) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| PyObject *__pyx_t_1 = NULL; |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("__set__", 0); |
| if (!(likely(PyBytes_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_value)->tp_name), 0))) __PYX_ERR(0, 127, __pyx_L1_error) |
| __pyx_t_1 = __pyx_v_value; |
| __Pyx_INCREF(__pyx_t_1); |
| __Pyx_GIVEREF(__pyx_t_1); |
| __Pyx_GOTREF(__pyx_v_self->path); |
| __Pyx_DECREF(__pyx_v_self->path); |
| __pyx_v_self->path = ((PyObject*)__pyx_t_1); |
| __pyx_t_1 = 0; |
|
|
| |
| __pyx_r = 0; |
| goto __pyx_L0; |
| __pyx_L1_error:; |
| __Pyx_XDECREF(__pyx_t_1); |
| __Pyx_AddTraceback("kenlm.Model.path.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| __pyx_r = -1; |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| |
| static int __pyx_pw_5kenlm_5Model_4path_5__del__(PyObject *__pyx_v_self); |
| static int __pyx_pw_5kenlm_5Model_4path_5__del__(PyObject *__pyx_v_self) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__del__ (wrapper)", 0); |
| __pyx_r = __pyx_pf_5kenlm_5Model_4path_4__del__(((struct __pyx_obj_5kenlm_Model *)__pyx_v_self)); |
|
|
| |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static int __pyx_pf_5kenlm_5Model_4path_4__del__(struct __pyx_obj_5kenlm_Model *__pyx_v_self) { |
| int __pyx_r; |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__del__", 0); |
| __Pyx_INCREF(Py_None); |
| __Pyx_GIVEREF(Py_None); |
| __Pyx_GOTREF(__pyx_v_self->path); |
| __Pyx_DECREF(__pyx_v_self->path); |
| __pyx_v_self->path = ((PyObject*)Py_None); |
|
|
| |
| __pyx_r = 0; |
| __Pyx_RefNannyFinishContext(); |
| return __pyx_r; |
| } |
|
|
| static PyObject *__pyx_tp_new_5kenlm_FullScoreReturn(PyTypeObject *t, PyObject *a, PyObject *k) { |
| PyObject *o; |
| if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { |
| o = (*t->tp_alloc)(t, 0); |
| } else { |
| o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); |
| } |
| if (unlikely(!o)) return 0; |
| if (unlikely(__pyx_pw_5kenlm_15FullScoreReturn_1__cinit__(o, a, k) < 0)) goto bad; |
| return o; |
| bad: |
| Py_DECREF(o); o = 0; |
| return NULL; |
| } |
|
|
| static void __pyx_tp_dealloc_5kenlm_FullScoreReturn(PyObject *o) { |
| #if CYTHON_USE_TP_FINALIZE |
| if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { |
| if (PyObject_CallFinalizerFromDealloc(o)) return; |
| } |
| #endif |
| (*Py_TYPE(o)->tp_free)(o); |
| } |
|
|
| static PyObject *__pyx_getprop_5kenlm_15FullScoreReturn_log_prob(PyObject *o, CYTHON_UNUSED void *x) { |
| return __pyx_pw_5kenlm_15FullScoreReturn_8log_prob_1__get__(o); |
| } |
|
|
| static PyObject *__pyx_getprop_5kenlm_15FullScoreReturn_ngram_length(PyObject *o, CYTHON_UNUSED void *x) { |
| return __pyx_pw_5kenlm_15FullScoreReturn_12ngram_length_1__get__(o); |
| } |
|
|
| static PyObject *__pyx_getprop_5kenlm_15FullScoreReturn_oov(PyObject *o, CYTHON_UNUSED void *x) { |
| return __pyx_pw_5kenlm_15FullScoreReturn_3oov_1__get__(o); |
| } |
|
|
| static PyMethodDef __pyx_methods_5kenlm_FullScoreReturn[] = { |
| {"__reduce_cython__", (PyCFunction)__pyx_pw_5kenlm_15FullScoreReturn_5__reduce_cython__, METH_NOARGS, 0}, |
| {"__setstate_cython__", (PyCFunction)__pyx_pw_5kenlm_15FullScoreReturn_7__setstate_cython__, METH_O, 0}, |
| {0, 0, 0, 0} |
| }; |
|
|
| static struct PyGetSetDef __pyx_getsets_5kenlm_FullScoreReturn[] = { |
| {(char *)"log_prob", __pyx_getprop_5kenlm_15FullScoreReturn_log_prob, 0, (char *)0, 0}, |
| {(char *)"ngram_length", __pyx_getprop_5kenlm_15FullScoreReturn_ngram_length, 0, (char *)0, 0}, |
| {(char *)"oov", __pyx_getprop_5kenlm_15FullScoreReturn_oov, 0, (char *)0, 0}, |
| {0, 0, 0, 0, 0} |
| }; |
|
|
| static PyTypeObject __pyx_type_5kenlm_FullScoreReturn = { |
| PyVarObject_HEAD_INIT(0, 0) |
| "kenlm.FullScoreReturn", |
| sizeof(struct __pyx_obj_5kenlm_FullScoreReturn), |
| 0, |
| __pyx_tp_dealloc_5kenlm_FullScoreReturn, |
| #if PY_VERSION_HEX < 0x030800b4 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b4 |
| 0, |
| #endif |
| 0, |
| 0, |
| #if PY_MAJOR_VERSION < 3 |
| 0, |
| #endif |
| #if PY_MAJOR_VERSION >= 3 |
| 0, |
| #endif |
| __pyx_pw_5kenlm_15FullScoreReturn_3__repr__, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, |
| "\n Wrapper around FullScoreReturn.\n\n Notes:\n `prob` has been renamed to `log_prob`\n `oov` has been added to flag whether the word is OOV\n ", |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| __pyx_methods_5kenlm_FullScoreReturn, |
| 0, |
| __pyx_getsets_5kenlm_FullScoreReturn, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| __pyx_tp_new_5kenlm_FullScoreReturn, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| #if PY_VERSION_HEX >= 0x030400a1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 |
| 0, |
| #endif |
| }; |
|
|
| static PyObject *__pyx_tp_new_5kenlm_State(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { |
| struct __pyx_obj_5kenlm_State *p; |
| PyObject *o; |
| if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { |
| o = (*t->tp_alloc)(t, 0); |
| } else { |
| o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); |
| } |
| if (unlikely(!o)) return 0; |
| p = ((struct __pyx_obj_5kenlm_State *)o); |
| new((void*)&(p->_c_state)) lm::ngram::State(); |
| return o; |
| } |
|
|
| static void __pyx_tp_dealloc_5kenlm_State(PyObject *o) { |
| struct __pyx_obj_5kenlm_State *p = (struct __pyx_obj_5kenlm_State *)o; |
| #if CYTHON_USE_TP_FINALIZE |
| if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { |
| if (PyObject_CallFinalizerFromDealloc(o)) return; |
| } |
| #endif |
| __Pyx_call_destructor(p->_c_state); |
| (*Py_TYPE(o)->tp_free)(o); |
| } |
|
|
| static PyMethodDef __pyx_methods_5kenlm_State[] = { |
| {"__copy__", (PyCFunction)__pyx_pw_5kenlm_5State_5__copy__, METH_NOARGS, 0}, |
| {"__deepcopy__", (PyCFunction)__pyx_pw_5kenlm_5State_7__deepcopy__, METH_NOARGS, 0}, |
| {"__reduce_cython__", (PyCFunction)__pyx_pw_5kenlm_5State_9__reduce_cython__, METH_NOARGS, 0}, |
| {"__setstate_cython__", (PyCFunction)__pyx_pw_5kenlm_5State_11__setstate_cython__, METH_O, 0}, |
| {0, 0, 0, 0} |
| }; |
|
|
| static PyTypeObject __pyx_type_5kenlm_State = { |
| PyVarObject_HEAD_INIT(0, 0) |
| "kenlm.State", |
| sizeof(struct __pyx_obj_5kenlm_State), |
| 0, |
| __pyx_tp_dealloc_5kenlm_State, |
| #if PY_VERSION_HEX < 0x030800b4 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b4 |
| 0, |
| #endif |
| 0, |
| 0, |
| #if PY_MAJOR_VERSION < 3 |
| 0, |
| #endif |
| #if PY_MAJOR_VERSION >= 3 |
| 0, |
| #endif |
| 0, |
| 0, |
| 0, |
| 0, |
| __pyx_pw_5kenlm_5State_3__hash__, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, |
| "\n Wrapper around lm::ngram::State so that python code can make incremental queries.\n\n Notes:\n * rich comparisons\n * hashable\n ", |
| 0, |
| 0, |
| __pyx_pw_5kenlm_5State_1__richcmp__, |
| 0, |
| 0, |
| 0, |
| __pyx_methods_5kenlm_State, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| __pyx_tp_new_5kenlm_State, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| #if PY_VERSION_HEX >= 0x030400a1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 |
| 0, |
| #endif |
| }; |
|
|
| static PyObject *__pyx_tp_new_5kenlm_Config(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { |
| struct __pyx_obj_5kenlm_Config *p; |
| PyObject *o; |
| if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { |
| o = (*t->tp_alloc)(t, 0); |
| } else { |
| o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); |
| } |
| if (unlikely(!o)) return 0; |
| p = ((struct __pyx_obj_5kenlm_Config *)o); |
| new((void*)&(p->_c_config)) lm::ngram::Config(); |
| return o; |
| } |
|
|
| static void __pyx_tp_dealloc_5kenlm_Config(PyObject *o) { |
| struct __pyx_obj_5kenlm_Config *p = (struct __pyx_obj_5kenlm_Config *)o; |
| #if CYTHON_USE_TP_FINALIZE |
| if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { |
| if (PyObject_CallFinalizerFromDealloc(o)) return; |
| } |
| #endif |
| __Pyx_call_destructor(p->_c_config); |
| (*Py_TYPE(o)->tp_free)(o); |
| } |
|
|
| static PyObject *__pyx_getprop_5kenlm_6Config_load_method(PyObject *o, CYTHON_UNUSED void *x) { |
| return __pyx_pw_5kenlm_6Config_11load_method_1__get__(o); |
| } |
|
|
| static int __pyx_setprop_5kenlm_6Config_load_method(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { |
| if (v) { |
| return __pyx_pw_5kenlm_6Config_11load_method_3__set__(o, v); |
| } |
| else { |
| PyErr_SetString(PyExc_NotImplementedError, "__del__"); |
| return -1; |
| } |
| } |
|
|
| static PyObject *__pyx_getprop_5kenlm_6Config_show_progress(PyObject *o, CYTHON_UNUSED void *x) { |
| return __pyx_pw_5kenlm_6Config_13show_progress_1__get__(o); |
| } |
|
|
| static int __pyx_setprop_5kenlm_6Config_show_progress(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { |
| if (v) { |
| return __pyx_pw_5kenlm_6Config_13show_progress_3__set__(o, v); |
| } |
| else { |
| PyErr_SetString(PyExc_NotImplementedError, "__del__"); |
| return -1; |
| } |
| } |
|
|
| static PyObject *__pyx_getprop_5kenlm_6Config_arpa_complain(PyObject *o, CYTHON_UNUSED void *x) { |
| return __pyx_pw_5kenlm_6Config_13arpa_complain_1__get__(o); |
| } |
|
|
| static int __pyx_setprop_5kenlm_6Config_arpa_complain(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { |
| if (v) { |
| return __pyx_pw_5kenlm_6Config_13arpa_complain_3__set__(o, v); |
| } |
| else { |
| PyErr_SetString(PyExc_NotImplementedError, "__del__"); |
| return -1; |
| } |
| } |
|
|
| static PyMethodDef __pyx_methods_5kenlm_Config[] = { |
| {"__reduce_cython__", (PyCFunction)__pyx_pw_5kenlm_6Config_3__reduce_cython__, METH_NOARGS, 0}, |
| {"__setstate_cython__", (PyCFunction)__pyx_pw_5kenlm_6Config_5__setstate_cython__, METH_O, 0}, |
| {0, 0, 0, 0} |
| }; |
|
|
| static struct PyGetSetDef __pyx_getsets_5kenlm_Config[] = { |
| {(char *)"load_method", __pyx_getprop_5kenlm_6Config_load_method, __pyx_setprop_5kenlm_6Config_load_method, (char *)0, 0}, |
| {(char *)"show_progress", __pyx_getprop_5kenlm_6Config_show_progress, __pyx_setprop_5kenlm_6Config_show_progress, (char *)0, 0}, |
| {(char *)"arpa_complain", __pyx_getprop_5kenlm_6Config_arpa_complain, __pyx_setprop_5kenlm_6Config_arpa_complain, (char *)0, 0}, |
| {0, 0, 0, 0, 0} |
| }; |
|
|
| static PyTypeObject __pyx_type_5kenlm_Config = { |
| PyVarObject_HEAD_INIT(0, 0) |
| "kenlm.Config", |
| sizeof(struct __pyx_obj_5kenlm_Config), |
| 0, |
| __pyx_tp_dealloc_5kenlm_Config, |
| #if PY_VERSION_HEX < 0x030800b4 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b4 |
| 0, |
| #endif |
| 0, |
| 0, |
| #if PY_MAJOR_VERSION < 3 |
| 0, |
| #endif |
| #if PY_MAJOR_VERSION >= 3 |
| 0, |
| #endif |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, |
| "\n Wrapper around lm::ngram::Config.\n Pass this to Model's constructor to set configuration options.\n ", |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| __pyx_methods_5kenlm_Config, |
| 0, |
| __pyx_getsets_5kenlm_Config, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| __pyx_pw_5kenlm_6Config_1__init__, |
| 0, |
| __pyx_tp_new_5kenlm_Config, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| #if PY_VERSION_HEX >= 0x030400a1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 |
| 0, |
| #endif |
| }; |
|
|
| static PyObject *__pyx_tp_new_5kenlm_Model(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { |
| struct __pyx_obj_5kenlm_Model *p; |
| PyObject *o; |
| if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { |
| o = (*t->tp_alloc)(t, 0); |
| } else { |
| o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); |
| } |
| if (unlikely(!o)) return 0; |
| p = ((struct __pyx_obj_5kenlm_Model *)o); |
| p->path = ((PyObject*)Py_None); Py_INCREF(Py_None); |
| return o; |
| } |
|
|
| static void __pyx_tp_dealloc_5kenlm_Model(PyObject *o) { |
| struct __pyx_obj_5kenlm_Model *p = (struct __pyx_obj_5kenlm_Model *)o; |
| #if CYTHON_USE_TP_FINALIZE |
| if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { |
| if (PyObject_CallFinalizerFromDealloc(o)) return; |
| } |
| #endif |
| { |
| PyObject *etype, *eval, *etb; |
| PyErr_Fetch(&etype, &eval, &etb); |
| __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); |
| __pyx_pw_5kenlm_5Model_3__dealloc__(o); |
| __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); |
| PyErr_Restore(etype, eval, etb); |
| } |
| Py_CLEAR(p->path); |
| (*Py_TYPE(o)->tp_free)(o); |
| } |
|
|
| static PyObject *__pyx_getprop_5kenlm_5Model_order(PyObject *o, CYTHON_UNUSED void *x) { |
| return __pyx_pw_5kenlm_5Model_5order_1__get__(o); |
| } |
|
|
| static PyObject *__pyx_getprop_5kenlm_5Model_path(PyObject *o, CYTHON_UNUSED void *x) { |
| return __pyx_pw_5kenlm_5Model_4path_1__get__(o); |
| } |
|
|
| static int __pyx_setprop_5kenlm_5Model_path(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { |
| if (v) { |
| return __pyx_pw_5kenlm_5Model_4path_3__set__(o, v); |
| } |
| else { |
| return __pyx_pw_5kenlm_5Model_4path_5__del__(o); |
| } |
| } |
|
|
| static PyMethodDef __pyx_methods_5kenlm_Model[] = { |
| {"score", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5kenlm_5Model_5score, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5kenlm_5Model_4score}, |
| {"perplexity", (PyCFunction)__pyx_pw_5kenlm_5Model_7perplexity, METH_O, __pyx_doc_5kenlm_5Model_6perplexity}, |
| {"full_scores", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5kenlm_5Model_9full_scores, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5kenlm_5Model_8full_scores}, |
| {"BeginSentenceWrite", (PyCFunction)__pyx_pw_5kenlm_5Model_12BeginSentenceWrite, METH_O, __pyx_doc_5kenlm_5Model_11BeginSentenceWrite}, |
| {"NullContextWrite", (PyCFunction)__pyx_pw_5kenlm_5Model_14NullContextWrite, METH_O, __pyx_doc_5kenlm_5Model_13NullContextWrite}, |
| {"BaseScore", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5kenlm_5Model_16BaseScore, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5kenlm_5Model_15BaseScore}, |
| {"BaseFullScore", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5kenlm_5Model_18BaseFullScore, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5kenlm_5Model_17BaseFullScore}, |
| {"__reduce__", (PyCFunction)__pyx_pw_5kenlm_5Model_24__reduce__, METH_NOARGS, 0}, |
| {0, 0, 0, 0} |
| }; |
|
|
| static struct PyGetSetDef __pyx_getsets_5kenlm_Model[] = { |
| {(char *)"order", __pyx_getprop_5kenlm_5Model_order, 0, (char *)0, 0}, |
| {(char *)"path", __pyx_getprop_5kenlm_5Model_path, __pyx_setprop_5kenlm_5Model_path, (char *)0, 0}, |
| {0, 0, 0, 0, 0} |
| }; |
|
|
| static PySequenceMethods __pyx_tp_as_sequence_Model = { |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| __pyx_pw_5kenlm_5Model_20__contains__, |
| 0, |
| 0, |
| }; |
|
|
| static PyTypeObject __pyx_type_5kenlm_Model = { |
| PyVarObject_HEAD_INIT(0, 0) |
| "kenlm.Model", |
| sizeof(struct __pyx_obj_5kenlm_Model), |
| 0, |
| __pyx_tp_dealloc_5kenlm_Model, |
| #if PY_VERSION_HEX < 0x030800b4 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b4 |
| 0, |
| #endif |
| 0, |
| 0, |
| #if PY_MAJOR_VERSION < 3 |
| 0, |
| #endif |
| #if PY_MAJOR_VERSION >= 3 |
| 0, |
| #endif |
| __pyx_pw_5kenlm_5Model_22__repr__, |
| 0, |
| &__pyx_tp_as_sequence_Model, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, |
| "\n Wrapper around lm::ngram::Model.\n ", |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| __pyx_methods_5kenlm_Model, |
| 0, |
| __pyx_getsets_5kenlm_Model, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| __pyx_pw_5kenlm_5Model_1__init__, |
| 0, |
| __pyx_tp_new_5kenlm_Model, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| #if PY_VERSION_HEX >= 0x030400a1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 |
| 0, |
| #endif |
| }; |
|
|
| static struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *__pyx_freelist_5kenlm___pyx_scope_struct__full_scores[8]; |
| static int __pyx_freecount_5kenlm___pyx_scope_struct__full_scores = 0; |
|
|
| static PyObject *__pyx_tp_new_5kenlm___pyx_scope_struct__full_scores(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { |
| struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *p; |
| PyObject *o; |
| if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_5kenlm___pyx_scope_struct__full_scores > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores)))) { |
| o = (PyObject*)__pyx_freelist_5kenlm___pyx_scope_struct__full_scores[--__pyx_freecount_5kenlm___pyx_scope_struct__full_scores]; |
| memset(o, 0, sizeof(struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores)); |
| (void) PyObject_INIT(o, t); |
| PyObject_GC_Track(o); |
| } else { |
| o = (*t->tp_alloc)(t, 0); |
| if (unlikely(!o)) return 0; |
| } |
| p = ((struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *)o); |
| new((void*)&(p->__pyx_v_out_state)) lm::ngram::State(); |
| new((void*)&(p->__pyx_v_state)) lm::ngram::State(); |
| return o; |
| } |
|
|
| static void __pyx_tp_dealloc_5kenlm___pyx_scope_struct__full_scores(PyObject *o) { |
| struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *p = (struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *)o; |
| PyObject_GC_UnTrack(o); |
| __Pyx_call_destructor(p->__pyx_v_out_state); |
| __Pyx_call_destructor(p->__pyx_v_state); |
| Py_CLEAR(p->__pyx_v_bos); |
| Py_CLEAR(p->__pyx_v_eos); |
| Py_CLEAR(p->__pyx_v_self); |
| Py_CLEAR(p->__pyx_v_sentence); |
| Py_CLEAR(p->__pyx_v_word); |
| Py_CLEAR(p->__pyx_v_words); |
| Py_CLEAR(p->__pyx_t_0); |
| if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_5kenlm___pyx_scope_struct__full_scores < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores)))) { |
| __pyx_freelist_5kenlm___pyx_scope_struct__full_scores[__pyx_freecount_5kenlm___pyx_scope_struct__full_scores++] = ((struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *)o); |
| } else { |
| (*Py_TYPE(o)->tp_free)(o); |
| } |
| } |
|
|
| static int __pyx_tp_traverse_5kenlm___pyx_scope_struct__full_scores(PyObject *o, visitproc v, void *a) { |
| int e; |
| struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *p = (struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores *)o; |
| if (p->__pyx_v_bos) { |
| e = (*v)(p->__pyx_v_bos, a); if (e) return e; |
| } |
| if (p->__pyx_v_eos) { |
| e = (*v)(p->__pyx_v_eos, a); if (e) return e; |
| } |
| if (p->__pyx_v_self) { |
| e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e; |
| } |
| if (p->__pyx_v_sentence) { |
| e = (*v)(p->__pyx_v_sentence, a); if (e) return e; |
| } |
| if (p->__pyx_v_word) { |
| e = (*v)(p->__pyx_v_word, a); if (e) return e; |
| } |
| if (p->__pyx_v_words) { |
| e = (*v)(p->__pyx_v_words, a); if (e) return e; |
| } |
| if (p->__pyx_t_0) { |
| e = (*v)(p->__pyx_t_0, a); if (e) return e; |
| } |
| return 0; |
| } |
|
|
| static PyTypeObject __pyx_type_5kenlm___pyx_scope_struct__full_scores = { |
| PyVarObject_HEAD_INIT(0, 0) |
| "kenlm.__pyx_scope_struct__full_scores", |
| sizeof(struct __pyx_obj_5kenlm___pyx_scope_struct__full_scores), |
| 0, |
| __pyx_tp_dealloc_5kenlm___pyx_scope_struct__full_scores, |
| #if PY_VERSION_HEX < 0x030800b4 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b4 |
| 0, |
| #endif |
| 0, |
| 0, |
| #if PY_MAJOR_VERSION < 3 |
| 0, |
| #endif |
| #if PY_MAJOR_VERSION >= 3 |
| 0, |
| #endif |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, |
| 0, |
| __pyx_tp_traverse_5kenlm___pyx_scope_struct__full_scores, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| __pyx_tp_new_5kenlm___pyx_scope_struct__full_scores, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| #if PY_VERSION_HEX >= 0x030400a1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 |
| 0, |
| #endif |
| }; |
|
|
| static PyMethodDef __pyx_methods[] = { |
| {0, 0, 0, 0} |
| }; |
|
|
| #if PY_MAJOR_VERSION >= 3 |
| #if CYTHON_PEP489_MULTI_PHASE_INIT |
| static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); |
| static int __pyx_pymod_exec_kenlm(PyObject* module); |
| static PyModuleDef_Slot __pyx_moduledef_slots[] = { |
| {Py_mod_create, (void*)__pyx_pymod_create}, |
| {Py_mod_exec, (void*)__pyx_pymod_exec_kenlm}, |
| {0, NULL} |
| }; |
| #endif |
|
|
| static struct PyModuleDef __pyx_moduledef = { |
| PyModuleDef_HEAD_INIT, |
| "kenlm", |
| 0, |
| #if CYTHON_PEP489_MULTI_PHASE_INIT |
| 0, |
| #else |
| -1, |
| #endif |
| __pyx_methods , |
| #if CYTHON_PEP489_MULTI_PHASE_INIT |
| __pyx_moduledef_slots, |
| #else |
| NULL, |
| #endif |
| NULL, |
| NULL, |
| NULL |
| }; |
| #endif |
| #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 |
|
|
| static __Pyx_StringTabEntry __pyx_string_tab[] = { |
| {&__pyx_kp_u_0_1_2_3, __pyx_k_0_1_2_3, sizeof(__pyx_k_0_1_2_3), 0, 1, 0, 0}, |
| {&__pyx_n_s_ALL, __pyx_k_ALL, sizeof(__pyx_k_ALL), 0, 0, 1, 1}, |
| {&__pyx_n_s_ARPALoadComplain, __pyx_k_ARPALoadComplain, sizeof(__pyx_k_ARPALoadComplain), 0, 0, 1, 1}, |
| {&__pyx_kp_s_Backwards_compatability_stub_Use, __pyx_k_Backwards_compatability_stub_Use, sizeof(__pyx_k_Backwards_compatability_stub_Use), 0, 0, 1, 0}, |
| {&__pyx_kp_u_Cannot_convert_s_to_string, __pyx_k_Cannot_convert_s_to_string, sizeof(__pyx_k_Cannot_convert_s_to_string), 0, 1, 0, 0}, |
| {&__pyx_kp_u_Cannot_read_model, __pyx_k_Cannot_read_model, sizeof(__pyx_k_Cannot_read_model), 0, 1, 0, 0}, |
| {&__pyx_n_s_Config, __pyx_k_Config, sizeof(__pyx_k_Config), 0, 0, 1, 1}, |
| {&__pyx_n_s_EXPENSIVE, __pyx_k_EXPENSIVE, sizeof(__pyx_k_EXPENSIVE), 0, 0, 1, 1}, |
| {&__pyx_n_s_FullScoreReturn, __pyx_k_FullScoreReturn, sizeof(__pyx_k_FullScoreReturn), 0, 0, 1, 1}, |
| {&__pyx_n_s_IOError, __pyx_k_IOError, sizeof(__pyx_k_IOError), 0, 0, 1, 1}, |
| {&__pyx_n_s_LAZY, __pyx_k_LAZY, sizeof(__pyx_k_LAZY), 0, 0, 1, 1}, |
| {&__pyx_n_s_LanguageModel, __pyx_k_LanguageModel, sizeof(__pyx_k_LanguageModel), 0, 0, 1, 1}, |
| {&__pyx_n_s_LoadMethod, __pyx_k_LoadMethod, sizeof(__pyx_k_LoadMethod), 0, 0, 1, 1}, |
| {&__pyx_n_s_Model, __pyx_k_Model, sizeof(__pyx_k_Model), 0, 0, 1, 1}, |
| {&__pyx_kp_u_Model_from_0, __pyx_k_Model_from_0, sizeof(__pyx_k_Model_from_0), 0, 1, 0, 0}, |
| {&__pyx_n_s_Model_full_scores, __pyx_k_Model_full_scores, sizeof(__pyx_k_Model_full_scores), 0, 0, 1, 1}, |
| {&__pyx_n_s_NONE, __pyx_k_NONE, sizeof(__pyx_k_NONE), 0, 0, 1, 1}, |
| {&__pyx_n_s_PARALLEL_READ, __pyx_k_PARALLEL_READ, sizeof(__pyx_k_PARALLEL_READ), 0, 0, 1, 1}, |
| {&__pyx_n_s_POPULATE_OR_LAZY, __pyx_k_POPULATE_OR_LAZY, sizeof(__pyx_k_POPULATE_OR_LAZY), 0, 0, 1, 1}, |
| {&__pyx_n_s_POPULATE_OR_READ, __pyx_k_POPULATE_OR_READ, sizeof(__pyx_k_POPULATE_OR_READ), 0, 0, 1, 1}, |
| {&__pyx_n_s_READ, __pyx_k_READ, sizeof(__pyx_k_READ), 0, 0, 1, 1}, |
| {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, |
| {&__pyx_n_s_State, __pyx_k_State, sizeof(__pyx_k_State), 0, 0, 1, 1}, |
| {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, |
| {&__pyx_kp_u__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 1, 0, 0}, |
| {&__pyx_kp_u__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0}, |
| {&__pyx_n_s_abspath, __pyx_k_abspath, sizeof(__pyx_k_abspath), 0, 0, 1, 1}, |
| {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, |
| {&__pyx_n_s_basename, __pyx_k_basename, sizeof(__pyx_k_basename), 0, 0, 1, 1}, |
| {&__pyx_n_s_bos, __pyx_k_bos, sizeof(__pyx_k_bos), 0, 0, 1, 1}, |
| {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, |
| {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, |
| {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, |
| {&__pyx_n_s_config, __pyx_k_config, sizeof(__pyx_k_config), 0, 0, 1, 1}, |
| {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, |
| {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, |
| {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, |
| {&__pyx_n_s_eos, __pyx_k_eos, sizeof(__pyx_k_eos), 0, 0, 1, 1}, |
| {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, |
| {&__pyx_n_s_full_scores, __pyx_k_full_scores, sizeof(__pyx_k_full_scores), 0, 0, 1, 1}, |
| {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, |
| {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, |
| {&__pyx_n_s_in_state, __pyx_k_in_state, sizeof(__pyx_k_in_state), 0, 0, 1, 1}, |
| {&__pyx_n_s_kenlm, __pyx_k_kenlm, sizeof(__pyx_k_kenlm), 0, 0, 1, 1}, |
| {&__pyx_n_s_log_prob, __pyx_k_log_prob, sizeof(__pyx_k_log_prob), 0, 0, 1, 1}, |
| {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, |
| {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, |
| {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, |
| {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, |
| {&__pyx_n_s_ngram_length, __pyx_k_ngram_length, sizeof(__pyx_k_ngram_length), 0, 0, 1, 1}, |
| {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, |
| {&__pyx_n_s_oov, __pyx_k_oov, sizeof(__pyx_k_oov), 0, 0, 1, 1}, |
| {&__pyx_n_s_os, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1}, |
| {&__pyx_n_s_out_state, __pyx_k_out_state, sizeof(__pyx_k_out_state), 0, 0, 1, 1}, |
| {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1}, |
| {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, |
| {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, |
| {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, |
| {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, |
| {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, |
| {&__pyx_n_s_score, __pyx_k_score, sizeof(__pyx_k_score), 0, 0, 1, 1}, |
| {&__pyx_kp_s_self__c_config_cannot_be_convert, __pyx_k_self__c_config_cannot_be_convert, sizeof(__pyx_k_self__c_config_cannot_be_convert), 0, 0, 1, 0}, |
| {&__pyx_kp_s_self__c_state_cannot_be_converte, __pyx_k_self__c_state_cannot_be_converte, sizeof(__pyx_k_self__c_state_cannot_be_converte), 0, 0, 1, 0}, |
| {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1}, |
| {&__pyx_n_s_sentence, __pyx_k_sentence, sizeof(__pyx_k_sentence), 0, 0, 1, 1}, |
| {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, |
| {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, |
| {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1}, |
| {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, |
| {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1}, |
| {&__pyx_n_u_utf8, __pyx_k_utf8, sizeof(__pyx_k_utf8), 0, 1, 0, 1}, |
| {&__pyx_n_s_word, __pyx_k_word, sizeof(__pyx_k_word), 0, 0, 1, 1}, |
| {0, 0, 0, 0, 0, 0, 0} |
| }; |
| static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { |
| __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 9, __pyx_L1_error) |
| __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(0, 140, __pyx_L1_error) |
| __pyx_builtin_IOError = __Pyx_GetBuiltinName(__pyx_n_s_IOError); if (!__pyx_builtin_IOError) __PYX_ERR(0, 142, __pyx_L1_error) |
| return 0; |
| __pyx_L1_error:; |
| return -1; |
| } |
|
|
| static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); |
|
|
| |
| |
| |
| |
| |
| |
| __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 2, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_tuple_); |
| __Pyx_GIVEREF(__pyx_tuple_); |
|
|
| |
| |
| |
| |
| |
| __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 4, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_tuple__2); |
| __Pyx_GIVEREF(__pyx_tuple__2); |
|
|
| |
| |
| |
| |
| |
| |
| __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_self__c_state_cannot_be_converte); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 2, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_tuple__3); |
| __Pyx_GIVEREF(__pyx_tuple__3); |
|
|
| |
| |
| |
| |
| |
| __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_self__c_state_cannot_be_converte); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 4, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_tuple__4); |
| __Pyx_GIVEREF(__pyx_tuple__4); |
|
|
| |
| |
| |
| |
| |
| |
| __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_self__c_config_cannot_be_convert); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 2, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_tuple__5); |
| __Pyx_GIVEREF(__pyx_tuple__5); |
|
|
| |
| |
| |
| |
| |
| __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_self__c_config_cannot_be_convert); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 4, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_tuple__6); |
| __Pyx_GIVEREF(__pyx_tuple__6); |
| __Pyx_RefNannyFinishContext(); |
| return 0; |
| __pyx_L1_error:; |
| __Pyx_RefNannyFinishContext(); |
| return -1; |
| } |
|
|
| static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { |
| if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); |
| __pyx_float_10_0 = PyFloat_FromDouble(10.0); if (unlikely(!__pyx_float_10_0)) __PYX_ERR(0, 1, __pyx_L1_error) |
| return 0; |
| __pyx_L1_error:; |
| return -1; |
| } |
|
|
| static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); |
| static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); |
| static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); |
| static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); |
| static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); |
| static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); |
| static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); |
|
|
| static int __Pyx_modinit_global_init_code(void) { |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); |
| |
| __Pyx_RefNannyFinishContext(); |
| return 0; |
| } |
|
|
| static int __Pyx_modinit_variable_export_code(void) { |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); |
| |
| __Pyx_RefNannyFinishContext(); |
| return 0; |
| } |
|
|
| static int __Pyx_modinit_function_export_code(void) { |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); |
| |
| __Pyx_RefNannyFinishContext(); |
| return 0; |
| } |
|
|
| static int __Pyx_modinit_type_init_code(void) { |
| __Pyx_RefNannyDeclarations |
| int __pyx_lineno = 0; |
| const char *__pyx_filename = NULL; |
| int __pyx_clineno = 0; |
| __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); |
| |
| if (PyType_Ready(&__pyx_type_5kenlm_FullScoreReturn) < 0) __PYX_ERR(0, 11, __pyx_L1_error) |
| #if PY_VERSION_HEX < 0x030800B1 |
| __pyx_type_5kenlm_FullScoreReturn.tp_print = 0; |
| #endif |
| if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_5kenlm_FullScoreReturn.tp_dictoffset && __pyx_type_5kenlm_FullScoreReturn.tp_getattro == PyObject_GenericGetAttr)) { |
| __pyx_type_5kenlm_FullScoreReturn.tp_getattro = __Pyx_PyObject_GenericGetAttr; |
| } |
| if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FullScoreReturn, (PyObject *)&__pyx_type_5kenlm_FullScoreReturn) < 0) __PYX_ERR(0, 11, __pyx_L1_error) |
| if (__Pyx_setup_reduce((PyObject*)&__pyx_type_5kenlm_FullScoreReturn) < 0) __PYX_ERR(0, 11, __pyx_L1_error) |
| __pyx_ptype_5kenlm_FullScoreReturn = &__pyx_type_5kenlm_FullScoreReturn; |
| if (PyType_Ready(&__pyx_type_5kenlm_State) < 0) __PYX_ERR(0, 44, __pyx_L1_error) |
| #if PY_VERSION_HEX < 0x030800B1 |
| __pyx_type_5kenlm_State.tp_print = 0; |
| #endif |
| if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_5kenlm_State.tp_dictoffset && __pyx_type_5kenlm_State.tp_getattro == PyObject_GenericGetAttr)) { |
| __pyx_type_5kenlm_State.tp_getattro = __Pyx_PyObject_GenericGetAttr; |
| } |
| if (PyObject_SetAttr(__pyx_m, __pyx_n_s_State, (PyObject *)&__pyx_type_5kenlm_State) < 0) __PYX_ERR(0, 44, __pyx_L1_error) |
| if (__Pyx_setup_reduce((PyObject*)&__pyx_type_5kenlm_State) < 0) __PYX_ERR(0, 44, __pyx_L1_error) |
| __pyx_ptype_5kenlm_State = &__pyx_type_5kenlm_State; |
| if (PyType_Ready(&__pyx_type_5kenlm_Config) < 0) __PYX_ERR(0, 93, __pyx_L1_error) |
| #if PY_VERSION_HEX < 0x030800B1 |
| __pyx_type_5kenlm_Config.tp_print = 0; |
| #endif |
| if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_5kenlm_Config.tp_dictoffset && __pyx_type_5kenlm_Config.tp_getattro == PyObject_GenericGetAttr)) { |
| __pyx_type_5kenlm_Config.tp_getattro = __Pyx_PyObject_GenericGetAttr; |
| } |
| if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Config, (PyObject *)&__pyx_type_5kenlm_Config) < 0) __PYX_ERR(0, 93, __pyx_L1_error) |
| if (__Pyx_setup_reduce((PyObject*)&__pyx_type_5kenlm_Config) < 0) __PYX_ERR(0, 93, __pyx_L1_error) |
| __pyx_ptype_5kenlm_Config = &__pyx_type_5kenlm_Config; |
| if (PyType_Ready(&__pyx_type_5kenlm_Model) < 0) __PYX_ERR(0, 121, __pyx_L1_error) |
| #if PY_VERSION_HEX < 0x030800B1 |
| __pyx_type_5kenlm_Model.tp_print = 0; |
| #endif |
| if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_5kenlm_Model.tp_dictoffset && __pyx_type_5kenlm_Model.tp_getattro == PyObject_GenericGetAttr)) { |
| __pyx_type_5kenlm_Model.tp_getattro = __Pyx_PyObject_GenericGetAttr; |
| } |
| #if CYTHON_COMPILING_IN_CPYTHON |
| { |
| PyObject *wrapper = PyObject_GetAttrString((PyObject *)&__pyx_type_5kenlm_Model, "__init__"); if (unlikely(!wrapper)) __PYX_ERR(0, 121, __pyx_L1_error) |
| if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) { |
| __pyx_wrapperbase_5kenlm_5Model___init__ = *((PyWrapperDescrObject *)wrapper)->d_base; |
| __pyx_wrapperbase_5kenlm_5Model___init__.doc = __pyx_doc_5kenlm_5Model___init__; |
| ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_5kenlm_5Model___init__; |
| } |
| } |
| #endif |
| if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Model, (PyObject *)&__pyx_type_5kenlm_Model) < 0) __PYX_ERR(0, 121, __pyx_L1_error) |
| __pyx_ptype_5kenlm_Model = &__pyx_type_5kenlm_Model; |
| if (PyType_Ready(&__pyx_type_5kenlm___pyx_scope_struct__full_scores) < 0) __PYX_ERR(0, 217, __pyx_L1_error) |
| #if PY_VERSION_HEX < 0x030800B1 |
| __pyx_type_5kenlm___pyx_scope_struct__full_scores.tp_print = 0; |
| #endif |
| if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_5kenlm___pyx_scope_struct__full_scores.tp_dictoffset && __pyx_type_5kenlm___pyx_scope_struct__full_scores.tp_getattro == PyObject_GenericGetAttr)) { |
| __pyx_type_5kenlm___pyx_scope_struct__full_scores.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; |
| } |
| __pyx_ptype_5kenlm___pyx_scope_struct__full_scores = &__pyx_type_5kenlm___pyx_scope_struct__full_scores; |
| __Pyx_RefNannyFinishContext(); |
| return 0; |
| __pyx_L1_error:; |
| __Pyx_RefNannyFinishContext(); |
| return -1; |
| } |
|
|
| static int __Pyx_modinit_type_import_code(void) { |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); |
| |
| __Pyx_RefNannyFinishContext(); |
| return 0; |
| } |
|
|
| static int __Pyx_modinit_variable_import_code(void) { |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); |
| |
| __Pyx_RefNannyFinishContext(); |
| return 0; |
| } |
|
|
| static int __Pyx_modinit_function_import_code(void) { |
| __Pyx_RefNannyDeclarations |
| __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); |
| |
| __Pyx_RefNannyFinishContext(); |
| return 0; |
| } |
|
|
|
|
| #ifndef CYTHON_NO_PYINIT_EXPORT |
| #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC |
| #elif PY_MAJOR_VERSION < 3 |
| #ifdef __cplusplus |
| #define __Pyx_PyMODINIT_FUNC extern "C" void |
| #else |
| #define __Pyx_PyMODINIT_FUNC void |
| #endif |
| #else |
| #ifdef __cplusplus |
| #define __Pyx_PyMODINIT_FUNC extern "C" PyObject * |
| #else |
| #define __Pyx_PyMODINIT_FUNC PyObject * |
| #endif |
| #endif |
|
|
|
|
| #if PY_MAJOR_VERSION < 3 |
| __Pyx_PyMODINIT_FUNC initkenlm(void) CYTHON_SMALL_CODE; |
| __Pyx_PyMODINIT_FUNC initkenlm(void) |
| #else |
| __Pyx_PyMODINIT_FUNC PyInit_kenlm(void) CYTHON_SMALL_CODE; |
| __Pyx_PyMODINIT_FUNC PyInit_kenlm(void) |
| #if CYTHON_PEP489_MULTI_PHASE_INIT |
| { |
| return PyModuleDef_Init(&__pyx_moduledef); |
| } |
| static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { |
| #if PY_VERSION_HEX >= 0x030700A1 |
| static PY_INT64_T main_interpreter_id = -1; |
| PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); |
| if (main_interpreter_id == -1) { |
| main_interpreter_id = current_id; |
| return (unlikely(current_id == -1)) ? -1 : 0; |
| } else if (unlikely(main_interpreter_id != current_id)) |
| #else |
| static PyInterpreterState *main_interpreter = NULL; |
| PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; |
| if (!main_interpreter) { |
| main_interpreter = current_interpreter; |
| } else if (unlikely(main_interpreter != current_interpreter)) |
| #endif |
| { |
| PyErr_SetString( |
| PyExc_ImportError, |
| "Interpreter change detected - this module can only be loaded into one interpreter per process."); |
| return -1; |
| } |
| return 0; |
| } |
| 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, CYTHON_UNUSED PyModuleDef *def) { |
| PyObject *module = NULL, *moddict, *modname; |
| if (__Pyx_check_single_interpreter()) |
| return NULL; |
| 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_kenlm(PyObject *__pyx_pyinit_module) |
| #endif |
| #endif |
| { |
| PyObject *__pyx_t_1 = NULL; |
| 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_RefNannyDeclarations |
| #if CYTHON_PEP489_MULTI_PHASE_INIT |
| if (__pyx_m) { |
| if (__pyx_m == __pyx_pyinit_module) return 0; |
| PyErr_SetString(PyExc_RuntimeError, "Module 'kenlm' has already been imported. Re-initialisation is not supported."); |
| return -1; |
| } |
| #elif PY_MAJOR_VERSION >= 3 |
| if (__pyx_m) return __Pyx_NewRef(__pyx_m); |
| #endif |
| #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("__Pyx_PyMODINIT_FUNC PyInit_kenlm(void)", 0); |
| if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| #ifdef __Pxy_PyFrame_Initialize_Offsets |
| __Pxy_PyFrame_Initialize_Offsets(); |
| #endif |
| __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) |
| __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) |
| __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) |
| #ifdef __Pyx_CyFunction_USED |
| if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| #endif |
| #ifdef __Pyx_FusedFunction_USED |
| if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| #endif |
| #ifdef __Pyx_Coroutine_USED |
| if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| #endif |
| #ifdef __Pyx_Generator_USED |
| if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| #endif |
| #ifdef __Pyx_AsyncGen_USED |
| if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| #endif |
| #ifdef __Pyx_StopAsyncIteration_USED |
| if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| #endif |
| |
| |
| #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS |
| #ifdef WITH_THREAD |
| PyEval_InitThreads(); |
| #endif |
| #endif |
| |
| #if CYTHON_PEP489_MULTI_PHASE_INIT |
| __pyx_m = __pyx_pyinit_module; |
| Py_INCREF(__pyx_m); |
| #else |
| #if PY_MAJOR_VERSION < 3 |
| __pyx_m = Py_InitModule4("kenlm", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); |
| #else |
| __pyx_m = PyModule_Create(&__pyx_moduledef); |
| #endif |
| if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) |
| #endif |
| __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) |
| Py_INCREF(__pyx_d); |
| __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) |
| Py_INCREF(__pyx_b); |
| __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) |
| Py_INCREF(__pyx_cython_runtime); |
| if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); |
| |
| if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) |
| if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| #endif |
| if (__pyx_module_is_main_kenlm) { |
| if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| } |
| #if PY_MAJOR_VERSION >= 3 |
| { |
| PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) |
| if (!PyDict_GetItemString(modules, "kenlm")) { |
| if (unlikely(PyDict_SetItemString(modules, "kenlm", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) |
| } |
| } |
| #endif |
| |
| if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| |
| if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| |
| (void)__Pyx_modinit_global_init_code(); |
| (void)__Pyx_modinit_variable_export_code(); |
| (void)__Pyx_modinit_function_export_code(); |
| if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error) |
| (void)__Pyx_modinit_type_import_code(); |
| (void)__Pyx_modinit_variable_import_code(); |
| (void)__Pyx_modinit_function_import_code(); |
| |
| #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) |
| if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| #endif |
|
|
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_Import(__pyx_n_s_os, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_LoadMethod, __pyx_n_s_LoadMethod, (PyObject *) NULL, __pyx_n_s_kenlm, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_PyInt_From_enum__util_3a__3a_LoadMethod(util::LAZY); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_LAZY, __pyx_t_2) < 0) __PYX_ERR(0, 82, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_PyInt_From_enum__util_3a__3a_LoadMethod(util::POPULATE_OR_LAZY); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 83, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_POPULATE_OR_LAZY, __pyx_t_2) < 0) __PYX_ERR(0, 83, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_PyInt_From_enum__util_3a__3a_LoadMethod(util::POPULATE_OR_READ); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_POPULATE_OR_READ, __pyx_t_2) < 0) __PYX_ERR(0, 84, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_PyInt_From_enum__util_3a__3a_LoadMethod(util::READ); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_READ, __pyx_t_2) < 0) __PYX_ERR(0, 85, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_PyInt_From_enum__util_3a__3a_LoadMethod(util::PARALLEL_READ); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 86, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_PARALLEL_READ, __pyx_t_2) < 0) __PYX_ERR(0, 86, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_LoadMethod, __pyx_empty_tuple, __pyx_t_1, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| if (PyDict_SetItem(__pyx_d, __pyx_n_s_LoadMethod, __pyx_t_2) < 0) __PYX_ERR(0, 81, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_ARPALoadComplain, __pyx_n_s_ARPALoadComplain, (PyObject *) NULL, __pyx_n_s_kenlm, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_PyInt_From_enum__lm_3a__3a_ngram_3a__3a_Config_3a__3a_ARPALoadComplain(lm::ngram::Config::ALL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 89, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ALL, __pyx_t_2) < 0) __PYX_ERR(0, 89, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_PyInt_From_enum__lm_3a__3a_ngram_3a__3a_Config_3a__3a_ARPALoadComplain(lm::ngram::Config::EXPENSIVE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 90, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_EXPENSIVE, __pyx_t_2) < 0) __PYX_ERR(0, 90, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_PyInt_From_enum__lm_3a__3a_ngram_3a__3a_Config_3a__3a_ARPALoadComplain(lm::ngram::Config::NONE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_NONE, __pyx_t_2) < 0) __PYX_ERR(0, 91, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_ARPALoadComplain, __pyx_empty_tuple, __pyx_t_1, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| if (PyDict_SetItem(__pyx_d, __pyx_n_s_ARPALoadComplain, __pyx_t_2) < 0) __PYX_ERR(0, 88, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_5kenlm_Config)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 130, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __pyx_k__7 = ((struct __pyx_obj_5kenlm_Config *)__pyx_t_1); |
| __Pyx_GIVEREF(__pyx_t_1); |
| __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| |
| __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| __Pyx_INCREF(((PyObject *)__pyx_ptype_5kenlm_Model)); |
| __Pyx_GIVEREF(((PyObject *)__pyx_ptype_5kenlm_Model)); |
| PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_ptype_5kenlm_Model)); |
| __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_2); |
| __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_LanguageModel, __pyx_n_s_LanguageModel, (PyObject *) NULL, __pyx_n_s_kenlm, __pyx_kp_s_Backwards_compatability_stub_Use); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 287, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_3); |
| __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_LanguageModel, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_4); |
| if (PyDict_SetItem(__pyx_d, __pyx_n_s_LanguageModel, __pyx_t_4) < 0) __PYX_ERR(0, 287, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; |
| __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; |
| __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; |
|
|
| |
| |
| |
| |
| |
| __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) |
| __Pyx_GOTREF(__pyx_t_1); |
| if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) |
| __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; |
|
|
| |
|
|
| 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); |
| if (__pyx_m) { |
| if (__pyx_d) { |
| __Pyx_AddTraceback("init kenlm", __pyx_clineno, __pyx_lineno, __pyx_filename); |
| } |
| Py_CLEAR(__pyx_m); |
| } else if (!PyErr_Occurred()) { |
| PyErr_SetString(PyExc_ImportError, "init kenlm"); |
| } |
| __pyx_L0:; |
| __Pyx_RefNannyFinishContext(); |
| #if CYTHON_PEP489_MULTI_PHASE_INIT |
| return (__pyx_m != NULL) ? 0 : -1; |
| #elif PY_MAJOR_VERSION >= 3 |
| return __pyx_m; |
| #else |
| return; |
| #endif |
| } |
|
|
| |
| |
| #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 |
|
|
| |
| #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); |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(tp->tp_getattr)) |
| return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); |
| #endif |
| return PyObject_GetAttr(obj, attr_name); |
| } |
| #endif |
|
|
| |
| static PyObject *__Pyx_GetBuiltinName(PyObject *name) { |
| PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); |
| if (unlikely(!result)) { |
| PyErr_Format(PyExc_NameError, |
| #if PY_MAJOR_VERSION >= 3 |
| "name '%U' is not defined", name); |
| #else |
| "name '%.200s' is not defined", PyString_AS_STRING(name)); |
| #endif |
| } |
| return result; |
| } |
|
|
| |
| #if CYTHON_FAST_PYCCALL |
| static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { |
| PyCFunctionObject *func = (PyCFunctionObject*)func_obj; |
| PyCFunction meth = PyCFunction_GET_FUNCTION(func); |
| PyObject *self = PyCFunction_GET_SELF(func); |
| int flags = PyCFunction_GET_FLAGS(func); |
| assert(PyCFunction_Check(func)); |
| assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); |
| assert(nargs >= 0); |
| assert(nargs == 0 || args != NULL); |
| |
| |
| |
| assert(!PyErr_Occurred()); |
| if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { |
| return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); |
| } else { |
| return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); |
| } |
| } |
| #endif |
|
|
| |
| #if CYTHON_FAST_PYCALL |
| static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, |
| PyObject *globals) { |
| PyFrameObject *f; |
| PyThreadState *tstate = __Pyx_PyThreadState_Current; |
| PyObject **fastlocals; |
| Py_ssize_t i; |
| PyObject *result; |
| assert(globals != NULL); |
| |
| |
| |
| |
| assert(tstate != NULL); |
| f = PyFrame_New(tstate, co, globals, NULL); |
| if (f == NULL) { |
| return NULL; |
| } |
| fastlocals = __Pyx_PyFrame_GetLocalsplus(f); |
| for (i = 0; i < na; i++) { |
| Py_INCREF(*args); |
| fastlocals[i] = *args++; |
| } |
| result = PyEval_EvalFrameEx(f,0); |
| ++tstate->recursion_depth; |
| Py_DECREF(f); |
| --tstate->recursion_depth; |
| return result; |
| } |
| #if 1 || PY_VERSION_HEX < 0x030600B1 |
| static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { |
| PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); |
| PyObject *globals = PyFunction_GET_GLOBALS(func); |
| PyObject *argdefs = PyFunction_GET_DEFAULTS(func); |
| PyObject *closure; |
| #if PY_MAJOR_VERSION >= 3 |
| PyObject *kwdefs; |
| #endif |
| PyObject *kwtuple, **k; |
| PyObject **d; |
| Py_ssize_t nd; |
| Py_ssize_t nk; |
| PyObject *result; |
| assert(kwargs == NULL || PyDict_Check(kwargs)); |
| nk = kwargs ? PyDict_Size(kwargs) : 0; |
| if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { |
| return NULL; |
| } |
| if ( |
| #if PY_MAJOR_VERSION >= 3 |
| co->co_kwonlyargcount == 0 && |
| #endif |
| likely(kwargs == NULL || nk == 0) && |
| co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { |
| if (argdefs == NULL && co->co_argcount == nargs) { |
| result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); |
| goto done; |
| } |
| else if (nargs == 0 && argdefs != NULL |
| && co->co_argcount == Py_SIZE(argdefs)) { |
| |
| |
| args = &PyTuple_GET_ITEM(argdefs, 0); |
| result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); |
| goto done; |
| } |
| } |
| if (kwargs != NULL) { |
| Py_ssize_t pos, i; |
| kwtuple = PyTuple_New(2 * nk); |
| if (kwtuple == NULL) { |
| result = NULL; |
| goto done; |
| } |
| k = &PyTuple_GET_ITEM(kwtuple, 0); |
| pos = i = 0; |
| while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { |
| Py_INCREF(k[i]); |
| Py_INCREF(k[i+1]); |
| i += 2; |
| } |
| nk = i / 2; |
| } |
| else { |
| kwtuple = NULL; |
| k = NULL; |
| } |
| closure = PyFunction_GET_CLOSURE(func); |
| #if PY_MAJOR_VERSION >= 3 |
| kwdefs = PyFunction_GET_KW_DEFAULTS(func); |
| #endif |
| if (argdefs != NULL) { |
| d = &PyTuple_GET_ITEM(argdefs, 0); |
| nd = Py_SIZE(argdefs); |
| } |
| else { |
| d = NULL; |
| nd = 0; |
| } |
| #if PY_MAJOR_VERSION >= 3 |
| result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, |
| args, (int)nargs, |
| k, (int)nk, |
| d, (int)nd, kwdefs, closure); |
| #else |
| result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, |
| args, (int)nargs, |
| k, (int)nk, |
| d, (int)nd, closure); |
| #endif |
| Py_XDECREF(kwtuple); |
| done: |
| Py_LeaveRecursiveCall(); |
| return result; |
| } |
| #endif |
| #endif |
|
|
| |
| #if CYTHON_COMPILING_IN_CPYTHON |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { |
| PyObject *result; |
| ternaryfunc call = func->ob_type->tp_call; |
| if (unlikely(!call)) |
| return PyObject_Call(func, arg, kw); |
| if (unlikely(Py_EnterRecursiveCall((char*)" 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 |
|
|
| |
| static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { |
| PyObject *args, *result = NULL; |
| #if CYTHON_FAST_PYCALL |
| if (PyFunction_Check(function)) { |
| PyObject *args[2] = {arg1, arg2}; |
| return __Pyx_PyFunction_FastCall(function, args, 2); |
| } |
| #endif |
| #if CYTHON_FAST_PYCCALL |
| if (__Pyx_PyFastCFunction_Check(function)) { |
| PyObject *args[2] = {arg1, arg2}; |
| return __Pyx_PyCFunction_FastCall(function, args, 2); |
| } |
| #endif |
| args = PyTuple_New(2); |
| if (unlikely(!args)) goto done; |
| Py_INCREF(arg1); |
| PyTuple_SET_ITEM(args, 0, arg1); |
| Py_INCREF(arg2); |
| PyTuple_SET_ITEM(args, 1, arg2); |
| Py_INCREF(function); |
| result = __Pyx_PyObject_Call(function, args, NULL); |
| Py_DECREF(args); |
| Py_DECREF(function); |
| done: |
| return result; |
| } |
|
|
| |
| #if CYTHON_COMPILING_IN_CPYTHON |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { |
| PyObject *self, *result; |
| PyCFunction cfunc; |
| cfunc = PyCFunction_GET_FUNCTION(func); |
| self = PyCFunction_GET_SELF(func); |
| if (unlikely(Py_EnterRecursiveCall((char*)" 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 |
|
|
| |
| #if CYTHON_COMPILING_IN_CPYTHON |
| static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { |
| PyObject *result; |
| PyObject *args = PyTuple_New(1); |
| if (unlikely(!args)) return NULL; |
| Py_INCREF(arg); |
| PyTuple_SET_ITEM(args, 0, arg); |
| result = __Pyx_PyObject_Call(func, args, NULL); |
| Py_DECREF(args); |
| return result; |
| } |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { |
| #if CYTHON_FAST_PYCALL |
| if (PyFunction_Check(func)) { |
| return __Pyx_PyFunction_FastCall(func, &arg, 1); |
| } |
| #endif |
| if (likely(PyCFunction_Check(func))) { |
| if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { |
| return __Pyx_PyObject_CallMethO(func, arg); |
| #if CYTHON_FAST_PYCCALL |
| } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { |
| return __Pyx_PyCFunction_FastCall(func, &arg, 1); |
| #endif |
| } |
| } |
| return __Pyx__PyObject_CallOneArg(func, arg); |
| } |
| #else |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { |
| PyObject *result; |
| PyObject *args = PyTuple_Pack(1, arg); |
| if (unlikely(!args)) return NULL; |
| result = __Pyx_PyObject_Call(func, args, NULL); |
| Py_DECREF(args); |
| return result; |
| } |
| #endif |
|
|
| |
| #if CYTHON_FAST_THREAD_STATE |
| static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { |
| 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); |
| } |
| static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { |
| *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 |
|
|
| |
| #if PY_MAJOR_VERSION < 3 |
| static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, |
| CYTHON_UNUSED PyObject *cause) { |
| __Pyx_PyThreadState_declare |
| Py_XINCREF(type); |
| if (!value || value == Py_None) |
| value = NULL; |
| else |
| Py_INCREF(value); |
| if (!tb || tb == Py_None) |
| tb = NULL; |
| else { |
| Py_INCREF(tb); |
| if (!PyTraceBack_Check(tb)) { |
| PyErr_SetString(PyExc_TypeError, |
| "raise: arg 3 must be a traceback or None"); |
| goto raise_error; |
| } |
| } |
| if (PyType_Check(type)) { |
| #if CYTHON_COMPILING_IN_PYPY |
| if (!value) { |
| Py_INCREF(Py_None); |
| value = Py_None; |
| } |
| #endif |
| PyErr_NormalizeException(&type, &value, &tb); |
| } else { |
| if (value) { |
| PyErr_SetString(PyExc_TypeError, |
| "instance exception may not have a separate value"); |
| goto raise_error; |
| } |
| value = type; |
| type = (PyObject*) Py_TYPE(type); |
| Py_INCREF(type); |
| if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { |
| PyErr_SetString(PyExc_TypeError, |
| "raise: exception class must be a subclass of BaseException"); |
| goto raise_error; |
| } |
| } |
| __Pyx_PyThreadState_assign |
| __Pyx_ErrRestore(type, value, tb); |
| return; |
| raise_error: |
| Py_XDECREF(value); |
| Py_XDECREF(type); |
| Py_XDECREF(tb); |
| return; |
| } |
| #else |
| 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 CYTHON_COMPILING_IN_PYPY |
| 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); |
| #else |
| 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); |
| } |
| #endif |
| } |
| bad: |
| Py_XDECREF(owned_instance); |
| return; |
| } |
| #endif |
|
|
| |
| 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); |
| } |
|
|
| |
| static void __Pyx_RaiseDoubleKeywordsError( |
| const char* func_name, |
| PyObject* kw_name) |
| { |
| PyErr_Format(PyExc_TypeError, |
| #if PY_MAJOR_VERSION >= 3 |
| "%s() got multiple values for keyword argument '%U'", func_name, kw_name); |
| #else |
| "%s() got multiple values for keyword argument '%s'", func_name, |
| PyString_AsString(kw_name)); |
| #endif |
| } |
|
|
| |
| static int __Pyx_ParseOptionalKeywords( |
| PyObject *kwds, |
| PyObject **argnames[], |
| PyObject *kwds2, |
| PyObject *values[], |
| Py_ssize_t num_pos_args, |
| const char* function_name) |
| { |
| PyObject *key = 0, *value = 0; |
| Py_ssize_t pos = 0; |
| PyObject*** name; |
| PyObject*** first_kw_arg = argnames + num_pos_args; |
| while (PyDict_Next(kwds, &pos, &key, &value)) { |
| name = first_kw_arg; |
| while (*name && (**name != key)) name++; |
| if (*name) { |
| values[name-argnames] = value; |
| continue; |
| } |
| name = first_kw_arg; |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(PyString_Check(key))) { |
| while (*name) { |
| if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) |
| && _PyString_Eq(**name, key)) { |
| values[name-argnames] = value; |
| break; |
| } |
| name++; |
| } |
| if (*name) continue; |
| else { |
| PyObject*** argname = argnames; |
| while (argname != first_kw_arg) { |
| if ((**argname == key) || ( |
| (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) |
| && _PyString_Eq(**argname, key))) { |
| goto arg_passed_twice; |
| } |
| argname++; |
| } |
| } |
| } else |
| #endif |
| if (likely(PyUnicode_Check(key))) { |
| while (*name) { |
| int cmp = (**name == key) ? 0 : |
| #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 |
| (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : |
| #endif |
| PyUnicode_Compare(**name, key); |
| if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; |
| if (cmp == 0) { |
| values[name-argnames] = value; |
| break; |
| } |
| name++; |
| } |
| if (*name) continue; |
| else { |
| PyObject*** argname = argnames; |
| while (argname != first_kw_arg) { |
| int cmp = (**argname == key) ? 0 : |
| #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 |
| (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : |
| #endif |
| PyUnicode_Compare(**argname, key); |
| if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; |
| if (cmp == 0) goto arg_passed_twice; |
| argname++; |
| } |
| } |
| } else |
| goto invalid_keyword_type; |
| if (kwds2) { |
| if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; |
| } else { |
| goto invalid_keyword; |
| } |
| } |
| 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; |
| invalid_keyword: |
| PyErr_Format(PyExc_TypeError, |
| #if PY_MAJOR_VERSION < 3 |
| "%.200s() got an unexpected keyword argument '%.200s'", |
| function_name, PyString_AsString(key)); |
| #else |
| "%s() got an unexpected keyword argument '%U'", |
| function_name, key); |
| #endif |
| bad: |
| return -1; |
| } |
|
|
| |
| static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) |
| { |
| if (unlikely(!type)) { |
| PyErr_SetString(PyExc_SystemError, "Missing type object"); |
| return 0; |
| } |
| else if (exact) { |
| #if PY_MAJOR_VERSION == 2 |
| if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; |
| #endif |
| } |
| else { |
| if (likely(__Pyx_TypeCheck(obj, type))) return 1; |
| } |
| PyErr_Format(PyExc_TypeError, |
| "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", |
| name, type->tp_name, Py_TYPE(obj)->tp_name); |
| return 0; |
| } |
|
|
| |
| #if CYTHON_COMPILING_IN_CPYTHON |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { |
| #if CYTHON_FAST_PYCALL |
| if (PyFunction_Check(func)) { |
| return __Pyx_PyFunction_FastCall(func, NULL, 0); |
| } |
| #endif |
| #ifdef __Pyx_CyFunction_USED |
| if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) |
| #else |
| if (likely(PyCFunction_Check(func))) |
| #endif |
| { |
| if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { |
| return __Pyx_PyObject_CallMethO(func, NULL); |
| } |
| } |
| return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); |
| } |
| #endif |
|
|
| |
| static int __Pyx_CheckKeywordStrings( |
| PyObject *kwdict, |
| const char* function_name, |
| int kw_allowed) |
| { |
| PyObject* key = 0; |
| Py_ssize_t pos = 0; |
| #if CYTHON_COMPILING_IN_PYPY |
| if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) |
| goto invalid_keyword; |
| return 1; |
| #else |
| while (PyDict_Next(kwdict, &pos, &key, 0)) { |
| #if PY_MAJOR_VERSION < 3 |
| if (unlikely(!PyString_Check(key))) |
| #endif |
| if (unlikely(!PyUnicode_Check(key))) |
| goto invalid_keyword_type; |
| } |
| if ((!kw_allowed) && unlikely(key)) |
| goto invalid_keyword; |
| return 1; |
| invalid_keyword_type: |
| PyErr_Format(PyExc_TypeError, |
| "%.200s() keywords must be strings", function_name); |
| return 0; |
| #endif |
| invalid_keyword: |
| PyErr_Format(PyExc_TypeError, |
| #if PY_MAJOR_VERSION < 3 |
| "%.200s() got an unexpected keyword argument '%.200s'", |
| function_name, PyString_AsString(key)); |
| #else |
| "%s() got an unexpected keyword argument '%U'", |
| function_name, key); |
| #endif |
| return 0; |
| } |
|
|
| |
| #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 |
|
|
| |
| #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_AVOID_BORROWED_REFS |
| #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 |
| result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); |
| __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) |
| if (likely(result)) { |
| return __Pyx_NewRef(result); |
| } else if (unlikely(PyErr_Occurred())) { |
| return NULL; |
| } |
| #else |
| result = PyDict_GetItem(__pyx_d, name); |
| __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) |
| if (likely(result)) { |
| return __Pyx_NewRef(result); |
| } |
| #endif |
| #else |
| result = PyObject_GetItem(__pyx_d, name); |
| __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) |
| if (likely(result)) { |
| return __Pyx_NewRef(result); |
| } |
| PyErr_Clear(); |
| #endif |
| return __Pyx_GetBuiltinName(name); |
| } |
|
|
| |
| #if CYTHON_USE_EXC_INFO_STACK |
| static _PyErr_StackItem * |
| __Pyx_PyErr_GetTopmostException(PyThreadState *tstate) |
| { |
| _PyErr_StackItem *exc_info = tstate->exc_info; |
| while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && |
| exc_info->previous_item != NULL) |
| { |
| exc_info = exc_info->previous_item; |
| } |
| return exc_info; |
| } |
| #endif |
|
|
| |
| #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 |
| _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); |
| *type = exc_info->exc_type; |
| *value = exc_info->exc_value; |
| *tb = exc_info->exc_traceback; |
| #else |
| *type = tstate->exc_type; |
| *value = tstate->exc_value; |
| *tb = tstate->exc_traceback; |
| #endif |
| Py_XINCREF(*type); |
| Py_XINCREF(*value); |
| Py_XINCREF(*tb); |
| } |
| static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { |
| 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 |
|
|
| |
| #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); |
| #if PY_MAJOR_VERSION >= 3 |
| for (i=0; i<n; i++) { |
| if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1; |
| } |
| #endif |
| 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) { |
| PyObject *exc_type = tstate->curexc_type; |
| if (exc_type == err) return 1; |
| if (unlikely(!exc_type)) return 0; |
| if (unlikely(PyTuple_Check(err))) |
| return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); |
| return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); |
| } |
| #endif |
|
|
| |
| #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, *local_value, *local_tb; |
| #if CYTHON_FAST_THREAD_STATE |
| PyObject *tmp_type, *tmp_value, *tmp_tb; |
| 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; |
| #else |
| PyErr_Fetch(&local_type, &local_value, &local_tb); |
| #endif |
| 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 PY_MAJOR_VERSION >= 3 |
| if (local_tb) { |
| if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) |
| goto bad; |
| } |
| #endif |
| 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; |
| 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; |
| } |
| #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); |
| #else |
| PyErr_SetExcInfo(local_type, local_value, local_tb); |
| #endif |
| return 0; |
| bad: |
| *type = 0; |
| *value = 0; |
| *tb = 0; |
| Py_XDECREF(local_type); |
| Py_XDECREF(local_value); |
| Py_XDECREF(local_tb); |
| return -1; |
| } |
|
|
| |
| #if CYTHON_FAST_THREAD_STATE |
| static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { |
| 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 |
| *type = tmp_type; |
| *value = tmp_value; |
| *tb = tmp_tb; |
| } |
| #else |
| static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { |
| PyObject *tmp_type, *tmp_value, *tmp_tb; |
| PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); |
| PyErr_SetExcInfo(*type, *value, *tb); |
| *type = tmp_type; |
| *value = tmp_value; |
| *tb = tmp_tb; |
| } |
| #endif |
|
|
| |
| #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 |
| static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { |
| PyErr_Format(PyExc_AttributeError, |
| #if PY_MAJOR_VERSION >= 3 |
| "'%.50s' object has no attribute '%U'", |
| tp->tp_name, attr_name); |
| #else |
| "'%.50s' object has no attribute '%.400s'", |
| tp->tp_name, PyString_AS_STRING(attr_name)); |
| #endif |
| return NULL; |
| } |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { |
| PyObject *descr; |
| PyTypeObject *tp = Py_TYPE(obj); |
| if (unlikely(!PyString_Check(attr_name))) { |
| return PyObject_GenericGetAttr(obj, attr_name); |
| } |
| assert(!tp->tp_dictoffset); |
| descr = _PyType_Lookup(tp, attr_name); |
| if (unlikely(!descr)) { |
| return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); |
| } |
| Py_INCREF(descr); |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) |
| #endif |
| { |
| descrgetfunc f = Py_TYPE(descr)->tp_descr_get; |
| if (unlikely(f)) { |
| PyObject *res = f(descr, obj, (PyObject *)tp); |
| Py_DECREF(descr); |
| return res; |
| } |
| } |
| return descr; |
| } |
| #endif |
|
|
| |
| #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 |
| static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { |
| if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { |
| return PyObject_GenericGetAttr(obj, attr_name); |
| } |
| return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); |
| } |
| #endif |
|
|
| |
| static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { |
| __Pyx_PyThreadState_declare |
| __Pyx_PyThreadState_assign |
| if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) |
| __Pyx_PyErr_Clear(); |
| } |
| static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { |
| PyObject *result; |
| #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 |
| 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; |
| } |
|
|
| |
| static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { |
| int ret; |
| PyObject *name_attr; |
| name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_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_reduce_ex = NULL; |
| PyObject *reduce = NULL; |
| PyObject *reduce_ex = NULL; |
| PyObject *reduce_cython = NULL; |
| PyObject *setstate = NULL; |
| PyObject *setstate_cython = NULL; |
| #if CYTHON_USE_PYTYPE_LOOKUP |
| if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; |
| #else |
| if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; |
| #endif |
| #if CYTHON_USE_PYTYPE_LOOKUP |
| object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; |
| #else |
| object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; |
| #endif |
| reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_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_n_s_reduce); if (!object_reduce) goto __PYX_BAD; |
| #else |
| object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; |
| #endif |
| reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; |
| if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { |
| reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); |
| if (likely(reduce_cython)) { |
| ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; |
| ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; |
| } else if (reduce == object_reduce || PyErr_Occurred()) { |
| goto __PYX_BAD; |
| } |
| setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); |
| if (!setstate) PyErr_Clear(); |
| if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { |
| setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); |
| if (likely(setstate_cython)) { |
| ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; |
| ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_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()) |
| PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); |
| ret = -1; |
| __PYX_GOOD: |
| #if !CYTHON_USE_PYTYPE_LOOKUP |
| Py_XDECREF(object_reduce); |
| Py_XDECREF(object_reduce_ex); |
| #endif |
| Py_XDECREF(reduce); |
| Py_XDECREF(reduce_ex); |
| Py_XDECREF(reduce_cython); |
| Py_XDECREF(setstate); |
| Py_XDECREF(setstate_cython); |
| return ret; |
| } |
|
|
| |
| static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { |
| PyObject *empty_list = 0; |
| PyObject *module = 0; |
| PyObject *global_dict = 0; |
| PyObject *empty_dict = 0; |
| PyObject *list; |
| #if PY_MAJOR_VERSION < 3 |
| PyObject *py_import; |
| py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); |
| if (!py_import) |
| goto bad; |
| #endif |
| if (from_list) |
| list = from_list; |
| else { |
| empty_list = PyList_New(0); |
| if (!empty_list) |
| goto bad; |
| list = empty_list; |
| } |
| global_dict = PyModule_GetDict(__pyx_m); |
| if (!global_dict) |
| goto bad; |
| empty_dict = PyDict_New(); |
| if (!empty_dict) |
| goto bad; |
| { |
| #if PY_MAJOR_VERSION >= 3 |
| if (level == -1) { |
| if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { |
| module = PyImport_ImportModuleLevelObject( |
| name, global_dict, empty_dict, list, 1); |
| if (!module) { |
| if (!PyErr_ExceptionMatches(PyExc_ImportError)) |
| goto bad; |
| PyErr_Clear(); |
| } |
| } |
| level = 0; |
| } |
| #endif |
| if (!module) { |
| #if PY_MAJOR_VERSION < 3 |
| PyObject *py_level = PyInt_FromLong(level); |
| if (!py_level) |
| goto bad; |
| module = PyObject_CallFunctionObjArgs(py_import, |
| name, global_dict, empty_dict, list, py_level, (PyObject *)NULL); |
| Py_DECREF(py_level); |
| #else |
| module = PyImport_ImportModuleLevelObject( |
| name, global_dict, empty_dict, list, level); |
| #endif |
| } |
| } |
| bad: |
| #if PY_MAJOR_VERSION < 3 |
| Py_XDECREF(py_import); |
| #endif |
| Py_XDECREF(empty_list); |
| Py_XDECREF(empty_dict); |
| return module; |
| } |
|
|
| |
| static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { |
| Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases); |
| for (i=0; i < nbases; i++) { |
| PyTypeObject *tmptype; |
| PyObject *tmp = PyTuple_GET_ITEM(bases, i); |
| tmptype = Py_TYPE(tmp); |
| #if PY_MAJOR_VERSION < 3 |
| if (tmptype == &PyClass_Type) |
| continue; |
| #endif |
| 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) { |
| #if PY_MAJOR_VERSION < 3 |
| metaclass = &PyClass_Type; |
| #else |
| metaclass = &PyType_Type; |
| #endif |
| } |
| Py_INCREF((PyObject*) metaclass); |
| return (PyObject*) metaclass; |
| } |
|
|
| |
| 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_GetAttrStr(metaclass, __pyx_n_s_prepare); |
| if (prep) { |
| PyObject *pargs = PyTuple_Pack(2, name, bases); |
| if (unlikely(!pargs)) { |
| Py_DECREF(prep); |
| return NULL; |
| } |
| ns = PyObject_Call(prep, pargs, mkw); |
| Py_DECREF(prep); |
| Py_DECREF(pargs); |
| } else { |
| if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError))) |
| return NULL; |
| PyErr_Clear(); |
| ns = PyDict_New(); |
| } |
| } else { |
| ns = PyDict_New(); |
| } |
| if (unlikely(!ns)) |
| return NULL; |
| if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad; |
| if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad; |
| if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_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, *margs; |
| PyObject *owned_metaclass = NULL; |
| if (allow_py2_metaclass) { |
| owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_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; |
| } |
| margs = PyTuple_Pack(3, name, bases, dict); |
| if (unlikely(!margs)) { |
| result = NULL; |
| } else { |
| result = PyObject_Call(metaclass, margs, mkw); |
| Py_DECREF(margs); |
| } |
| Py_XDECREF(owned_metaclass); |
| return result; |
| } |
|
|
| |
| #ifndef CYTHON_CLINE_IN_TRACEBACK |
| static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { |
| PyObject *use_cline; |
| PyObject *ptype, *pvalue, *ptraceback; |
| #if CYTHON_COMPILING_IN_CPYTHON |
| PyObject **cython_runtime_dict; |
| #endif |
| if (unlikely(!__pyx_cython_runtime)) { |
| return c_line; |
| } |
| __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); |
| #if CYTHON_COMPILING_IN_CPYTHON |
| cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); |
| if (likely(cython_runtime_dict)) { |
| __PYX_PY_DICT_LOOKUP_IF_MODIFIED( |
| use_cline, *cython_runtime_dict, |
| __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) |
| } else |
| #endif |
| { |
| PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); |
| if (use_cline_obj) { |
| use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; |
| Py_DECREF(use_cline_obj); |
| } else { |
| PyErr_Clear(); |
| use_cline = NULL; |
| } |
| } |
| if (!use_cline) { |
| c_line = 0; |
| PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); |
| } |
| else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { |
| c_line = 0; |
| } |
| __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); |
| return c_line; |
| } |
| #endif |
|
|
| |
| 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 PyCodeObject *__pyx_find_code_object(int code_line) { |
| PyCodeObject* code_object; |
| int pos; |
| if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { |
| return NULL; |
| } |
| pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); |
| if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { |
| return NULL; |
| } |
| code_object = __pyx_code_cache.entries[pos].code_object; |
| Py_INCREF(code_object); |
| return code_object; |
| } |
| static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { |
| int pos, i; |
| __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; |
| if (unlikely(!code_line)) { |
| return; |
| } |
| if (unlikely(!entries)) { |
| entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); |
| if (likely(entries)) { |
| __pyx_code_cache.entries = entries; |
| __pyx_code_cache.max_count = 64; |
| __pyx_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(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); |
| if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { |
| PyCodeObject* tmp = entries[pos].code_object; |
| entries[pos].code_object = code_object; |
| Py_DECREF(tmp); |
| return; |
| } |
| if (__pyx_code_cache.count == __pyx_code_cache.max_count) { |
| int new_max = __pyx_code_cache.max_count + 64; |
| entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( |
| __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); |
| if (unlikely(!entries)) { |
| return; |
| } |
| __pyx_code_cache.entries = entries; |
| __pyx_code_cache.max_count = new_max; |
| } |
| for (i=__pyx_code_cache.count; i>pos; i--) { |
| entries[i] = entries[i-1]; |
| } |
| entries[pos].code_line = code_line; |
| entries[pos].code_object = code_object; |
| __pyx_code_cache.count++; |
| Py_INCREF(code_object); |
| } |
|
|
| |
| #include "compile.h" |
| #include "frameobject.h" |
| #include "traceback.h" |
| static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( |
| const char *funcname, int c_line, |
| int py_line, const char *filename) { |
| PyCodeObject *py_code = 0; |
| PyObject *py_srcfile = 0; |
| PyObject *py_funcname = 0; |
| #if PY_MAJOR_VERSION < 3 |
| py_srcfile = PyString_FromString(filename); |
| #else |
| py_srcfile = PyUnicode_FromString(filename); |
| #endif |
| if (!py_srcfile) goto bad; |
| if (c_line) { |
| #if PY_MAJOR_VERSION < 3 |
| py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); |
| #else |
| py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); |
| #endif |
| } |
| else { |
| #if PY_MAJOR_VERSION < 3 |
| py_funcname = PyString_FromString(funcname); |
| #else |
| py_funcname = PyUnicode_FromString(funcname); |
| #endif |
| } |
| if (!py_funcname) goto bad; |
| py_code = __Pyx_PyCode_New( |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| __pyx_empty_bytes, |
| __pyx_empty_tuple, |
| __pyx_empty_tuple, |
| __pyx_empty_tuple, |
| __pyx_empty_tuple, |
| __pyx_empty_tuple, |
| py_srcfile, |
| py_funcname, |
| py_line, |
| __pyx_empty_bytes |
| ); |
| Py_DECREF(py_srcfile); |
| Py_DECREF(py_funcname); |
| return py_code; |
| bad: |
| Py_XDECREF(py_srcfile); |
| 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; |
| 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) { |
| py_code = __Pyx_CreateCodeObjectForTraceback( |
| funcname, c_line, py_line, filename); |
| if (!py_code) goto bad; |
| __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); |
| } |
| py_frame = PyFrame_New( |
| tstate, |
| py_code, |
| __pyx_d, |
| 0 |
| ); |
| 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); |
| } |
|
|
| |
| #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;\ |
| } |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__util_3a__3a_LoadMethod(enum util::LoadMethod value) { |
| const enum util::LoadMethod neg_one = (enum util::LoadMethod) ((enum util::LoadMethod) 0 - (enum util::LoadMethod) 1), const_zero = (enum util::LoadMethod) 0; |
| const int is_unsigned = neg_one > const_zero; |
| if (is_unsigned) { |
| if (sizeof(enum util::LoadMethod) < sizeof(long)) { |
| return PyInt_FromLong((long) value); |
| } else if (sizeof(enum util::LoadMethod) <= sizeof(unsigned long)) { |
| return PyLong_FromUnsignedLong((unsigned long) value); |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(enum util::LoadMethod) <= sizeof(unsigned PY_LONG_LONG)) { |
| return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); |
| #endif |
| } |
| } else { |
| if (sizeof(enum util::LoadMethod) <= sizeof(long)) { |
| return PyInt_FromLong((long) value); |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(enum util::LoadMethod) <= sizeof(PY_LONG_LONG)) { |
| return PyLong_FromLongLong((PY_LONG_LONG) value); |
| #endif |
| } |
| } |
| { |
| int one = 1; int little = (int)*(unsigned char *)&one; |
| unsigned char *bytes = (unsigned char *)&value; |
| return _PyLong_FromByteArray(bytes, sizeof(enum util::LoadMethod), |
| little, !is_unsigned); |
| } |
| } |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__lm_3a__3a_ngram_3a__3a_Config_3a__3a_ARPALoadComplain(enum lm::ngram::Config::ARPALoadComplain value) { |
| const enum lm::ngram::Config::ARPALoadComplain neg_one = (enum lm::ngram::Config::ARPALoadComplain) ((enum lm::ngram::Config::ARPALoadComplain) 0 - (enum lm::ngram::Config::ARPALoadComplain) 1), const_zero = (enum lm::ngram::Config::ARPALoadComplain) 0; |
| const int is_unsigned = neg_one > const_zero; |
| if (is_unsigned) { |
| if (sizeof(enum lm::ngram::Config::ARPALoadComplain) < sizeof(long)) { |
| return PyInt_FromLong((long) value); |
| } else if (sizeof(enum lm::ngram::Config::ARPALoadComplain) <= sizeof(unsigned long)) { |
| return PyLong_FromUnsignedLong((unsigned long) value); |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(enum lm::ngram::Config::ARPALoadComplain) <= sizeof(unsigned PY_LONG_LONG)) { |
| return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); |
| #endif |
| } |
| } else { |
| if (sizeof(enum lm::ngram::Config::ARPALoadComplain) <= sizeof(long)) { |
| return PyInt_FromLong((long) value); |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(enum lm::ngram::Config::ARPALoadComplain) <= sizeof(PY_LONG_LONG)) { |
| return PyLong_FromLongLong((PY_LONG_LONG) value); |
| #endif |
| } |
| } |
| { |
| int one = 1; int little = (int)*(unsigned char *)&one; |
| unsigned char *bytes = (unsigned char *)&value; |
| return _PyLong_FromByteArray(bytes, sizeof(enum lm::ngram::Config::ARPALoadComplain), |
| little, !is_unsigned); |
| } |
| } |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { |
| const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; |
| const int is_unsigned = neg_one > const_zero; |
| if (is_unsigned) { |
| if (sizeof(int) < sizeof(long)) { |
| return PyInt_FromLong((long) value); |
| } else if (sizeof(int) <= sizeof(unsigned long)) { |
| return PyLong_FromUnsignedLong((unsigned long) value); |
| #ifdef HAVE_LONG_LONG |
| } 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 PyInt_FromLong((long) value); |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { |
| return PyLong_FromLongLong((PY_LONG_LONG) value); |
| #endif |
| } |
| } |
| { |
| int one = 1; int little = (int)*(unsigned char *)&one; |
| unsigned char *bytes = (unsigned char *)&value; |
| return _PyLong_FromByteArray(bytes, sizeof(int), |
| little, !is_unsigned); |
| } |
| } |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) { |
| const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0; |
| const int is_unsigned = neg_one > const_zero; |
| if (is_unsigned) { |
| if (sizeof(unsigned int) < sizeof(long)) { |
| return PyInt_FromLong((long) value); |
| } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { |
| return PyLong_FromUnsignedLong((unsigned long) value); |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { |
| return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); |
| #endif |
| } |
| } else { |
| if (sizeof(unsigned int) <= sizeof(long)) { |
| return PyInt_FromLong((long) value); |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { |
| return PyLong_FromLongLong((PY_LONG_LONG) value); |
| #endif |
| } |
| } |
| { |
| int one = 1; int little = (int)*(unsigned char *)&one; |
| unsigned char *bytes = (unsigned char *)&value; |
| return _PyLong_FromByteArray(bytes, sizeof(unsigned int), |
| little, !is_unsigned); |
| } |
| } |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) { |
| const unsigned char neg_one = (unsigned char) ((unsigned char) 0 - (unsigned char) 1), const_zero = (unsigned char) 0; |
| const int is_unsigned = neg_one > const_zero; |
| if (is_unsigned) { |
| if (sizeof(unsigned char) < sizeof(long)) { |
| return PyInt_FromLong((long) value); |
| } else if (sizeof(unsigned char) <= sizeof(unsigned long)) { |
| return PyLong_FromUnsignedLong((unsigned long) value); |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) { |
| return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); |
| #endif |
| } |
| } else { |
| if (sizeof(unsigned char) <= sizeof(long)) { |
| return PyInt_FromLong((long) value); |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) { |
| return PyLong_FromLongLong((PY_LONG_LONG) value); |
| #endif |
| } |
| } |
| { |
| int one = 1; int little = (int)*(unsigned char *)&one; |
| unsigned char *bytes = (unsigned char *)&value; |
| return _PyLong_FromByteArray(bytes, sizeof(unsigned char), |
| little, !is_unsigned); |
| } |
| } |
|
|
| |
| static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { |
| const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; |
| const int is_unsigned = neg_one > const_zero; |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(PyInt_Check(x))) { |
| if (sizeof(int) < sizeof(long)) { |
| __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) |
| } else { |
| long val = PyInt_AS_LONG(x); |
| if (is_unsigned && unlikely(val < 0)) { |
| goto raise_neg_overflow; |
| } |
| return (int) val; |
| } |
| } else |
| #endif |
| if (likely(PyLong_Check(x))) { |
| if (is_unsigned) { |
| #if CYTHON_USE_PYLONG_INTERNALS |
| const digit* digits = ((PyLongObject*)x)->ob_digit; |
| switch (Py_SIZE(x)) { |
| case 0: return (int) 0; |
| case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) |
| 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 |
| 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)) |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { |
| __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) |
| #endif |
| } |
| } else { |
| #if CYTHON_USE_PYLONG_INTERNALS |
| const digit* digits = ((PyLongObject*)x)->ob_digit; |
| switch (Py_SIZE(x)) { |
| case 0: return (int) 0; |
| case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) |
| case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) |
| 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)) |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { |
| __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) |
| #endif |
| } |
| } |
| { |
| #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) |
| PyErr_SetString(PyExc_RuntimeError, |
| "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); |
| #else |
| int val; |
| PyObject *v = __Pyx_PyNumber_IntOrLong(x); |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(v) && !PyLong_Check(v)) { |
| PyObject *tmp = v; |
| v = PyNumber_Long(tmp); |
| Py_DECREF(tmp); |
| } |
| #endif |
| if (likely(v)) { |
| int one = 1; int is_little = (int)*(unsigned char *)&one; |
| unsigned char *bytes = (unsigned char *)&val; |
| int ret = _PyLong_AsByteArray((PyLongObject *)v, |
| bytes, sizeof(val), |
| is_little, !is_unsigned); |
| Py_DECREF(v); |
| if (likely(!ret)) |
| return val; |
| } |
| #endif |
| return (int) -1; |
| } |
| } else { |
| int val; |
| PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); |
| if (!tmp) return (int) -1; |
| val = __Pyx_PyInt_As_int(tmp); |
| Py_DECREF(tmp); |
| 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; |
| } |
|
|
| |
| static CYTHON_INLINE enum util::LoadMethod __Pyx_PyInt_As_enum__util_3a__3a_LoadMethod(PyObject *x) { |
| const enum util::LoadMethod neg_one = (enum util::LoadMethod) ((enum util::LoadMethod) 0 - (enum util::LoadMethod) 1), const_zero = (enum util::LoadMethod) 0; |
| const int is_unsigned = neg_one > const_zero; |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(PyInt_Check(x))) { |
| if (sizeof(enum util::LoadMethod) < sizeof(long)) { |
| __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, long, PyInt_AS_LONG(x)) |
| } else { |
| long val = PyInt_AS_LONG(x); |
| if (is_unsigned && unlikely(val < 0)) { |
| goto raise_neg_overflow; |
| } |
| return (enum util::LoadMethod) val; |
| } |
| } else |
| #endif |
| if (likely(PyLong_Check(x))) { |
| if (is_unsigned) { |
| #if CYTHON_USE_PYLONG_INTERNALS |
| const digit* digits = ((PyLongObject*)x)->ob_digit; |
| switch (Py_SIZE(x)) { |
| case 0: return (enum util::LoadMethod) 0; |
| case 1: __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, digit, digits[0]) |
| case 2: |
| if (8 * sizeof(enum util::LoadMethod) > 1 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum util::LoadMethod) >= 2 * PyLong_SHIFT) { |
| return (enum util::LoadMethod) (((((enum util::LoadMethod)digits[1]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[0])); |
| } |
| } |
| break; |
| case 3: |
| if (8 * sizeof(enum util::LoadMethod) > 2 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum util::LoadMethod) >= 3 * PyLong_SHIFT) { |
| return (enum util::LoadMethod) (((((((enum util::LoadMethod)digits[2]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[1]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[0])); |
| } |
| } |
| break; |
| case 4: |
| if (8 * sizeof(enum util::LoadMethod) > 3 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, 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 util::LoadMethod) >= 4 * PyLong_SHIFT) { |
| return (enum util::LoadMethod) (((((((((enum util::LoadMethod)digits[3]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[2]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[1]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[0])); |
| } |
| } |
| break; |
| } |
| #endif |
| #if CYTHON_COMPILING_IN_CPYTHON |
| 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 util::LoadMethod) -1; |
| if (unlikely(result == 1)) |
| goto raise_neg_overflow; |
| } |
| #endif |
| if (sizeof(enum util::LoadMethod) <= sizeof(unsigned long)) { |
| __PYX_VERIFY_RETURN_INT_EXC(enum util::LoadMethod, unsigned long, PyLong_AsUnsignedLong(x)) |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(enum util::LoadMethod) <= sizeof(unsigned PY_LONG_LONG)) { |
| __PYX_VERIFY_RETURN_INT_EXC(enum util::LoadMethod, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) |
| #endif |
| } |
| } else { |
| #if CYTHON_USE_PYLONG_INTERNALS |
| const digit* digits = ((PyLongObject*)x)->ob_digit; |
| switch (Py_SIZE(x)) { |
| case 0: return (enum util::LoadMethod) 0; |
| case -1: __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, sdigit, (sdigit) (-(sdigit)digits[0])) |
| case 1: __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, digit, +digits[0]) |
| case -2: |
| if (8 * sizeof(enum util::LoadMethod) - 1 > 1 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum util::LoadMethod) - 1 > 2 * PyLong_SHIFT) { |
| return (enum util::LoadMethod) (((enum util::LoadMethod)-1)*(((((enum util::LoadMethod)digits[1]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[0]))); |
| } |
| } |
| break; |
| case 2: |
| if (8 * sizeof(enum util::LoadMethod) > 1 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum util::LoadMethod) - 1 > 2 * PyLong_SHIFT) { |
| return (enum util::LoadMethod) ((((((enum util::LoadMethod)digits[1]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[0]))); |
| } |
| } |
| break; |
| case -3: |
| if (8 * sizeof(enum util::LoadMethod) - 1 > 2 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum util::LoadMethod) - 1 > 3 * PyLong_SHIFT) { |
| return (enum util::LoadMethod) (((enum util::LoadMethod)-1)*(((((((enum util::LoadMethod)digits[2]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[1]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[0]))); |
| } |
| } |
| break; |
| case 3: |
| if (8 * sizeof(enum util::LoadMethod) > 2 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum util::LoadMethod) - 1 > 3 * PyLong_SHIFT) { |
| return (enum util::LoadMethod) ((((((((enum util::LoadMethod)digits[2]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[1]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[0]))); |
| } |
| } |
| break; |
| case -4: |
| if (8 * sizeof(enum util::LoadMethod) - 1 > 3 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, 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 util::LoadMethod) - 1 > 4 * PyLong_SHIFT) { |
| return (enum util::LoadMethod) (((enum util::LoadMethod)-1)*(((((((((enum util::LoadMethod)digits[3]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[2]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[1]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[0]))); |
| } |
| } |
| break; |
| case 4: |
| if (8 * sizeof(enum util::LoadMethod) > 3 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum util::LoadMethod, 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 util::LoadMethod) - 1 > 4 * PyLong_SHIFT) { |
| return (enum util::LoadMethod) ((((((((((enum util::LoadMethod)digits[3]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[2]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[1]) << PyLong_SHIFT) | (enum util::LoadMethod)digits[0]))); |
| } |
| } |
| break; |
| } |
| #endif |
| if (sizeof(enum util::LoadMethod) <= sizeof(long)) { |
| __PYX_VERIFY_RETURN_INT_EXC(enum util::LoadMethod, long, PyLong_AsLong(x)) |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(enum util::LoadMethod) <= sizeof(PY_LONG_LONG)) { |
| __PYX_VERIFY_RETURN_INT_EXC(enum util::LoadMethod, PY_LONG_LONG, PyLong_AsLongLong(x)) |
| #endif |
| } |
| } |
| { |
| #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) |
| PyErr_SetString(PyExc_RuntimeError, |
| "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); |
| #else |
| enum util::LoadMethod val; |
| PyObject *v = __Pyx_PyNumber_IntOrLong(x); |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(v) && !PyLong_Check(v)) { |
| PyObject *tmp = v; |
| v = PyNumber_Long(tmp); |
| Py_DECREF(tmp); |
| } |
| #endif |
| if (likely(v)) { |
| int one = 1; int is_little = (int)*(unsigned char *)&one; |
| unsigned char *bytes = (unsigned char *)&val; |
| int ret = _PyLong_AsByteArray((PyLongObject *)v, |
| bytes, sizeof(val), |
| is_little, !is_unsigned); |
| Py_DECREF(v); |
| if (likely(!ret)) |
| return val; |
| } |
| #endif |
| return (enum util::LoadMethod) -1; |
| } |
| } else { |
| enum util::LoadMethod val; |
| PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); |
| if (!tmp) return (enum util::LoadMethod) -1; |
| val = __Pyx_PyInt_As_enum__util_3a__3a_LoadMethod(tmp); |
| Py_DECREF(tmp); |
| return val; |
| } |
| raise_overflow: |
| PyErr_SetString(PyExc_OverflowError, |
| "value too large to convert to enum util::LoadMethod"); |
| return (enum util::LoadMethod) -1; |
| raise_neg_overflow: |
| PyErr_SetString(PyExc_OverflowError, |
| "can't convert negative value to enum util::LoadMethod"); |
| return (enum util::LoadMethod) -1; |
| } |
|
|
| |
| static CYTHON_INLINE enum lm::ngram::Config::ARPALoadComplain __Pyx_PyInt_As_enum__lm_3a__3a_ngram_3a__3a_Config_3a__3a_ARPALoadComplain(PyObject *x) { |
| const enum lm::ngram::Config::ARPALoadComplain neg_one = (enum lm::ngram::Config::ARPALoadComplain) ((enum lm::ngram::Config::ARPALoadComplain) 0 - (enum lm::ngram::Config::ARPALoadComplain) 1), const_zero = (enum lm::ngram::Config::ARPALoadComplain) 0; |
| const int is_unsigned = neg_one > const_zero; |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(PyInt_Check(x))) { |
| if (sizeof(enum lm::ngram::Config::ARPALoadComplain) < sizeof(long)) { |
| __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, long, PyInt_AS_LONG(x)) |
| } else { |
| long val = PyInt_AS_LONG(x); |
| if (is_unsigned && unlikely(val < 0)) { |
| goto raise_neg_overflow; |
| } |
| return (enum lm::ngram::Config::ARPALoadComplain) val; |
| } |
| } else |
| #endif |
| if (likely(PyLong_Check(x))) { |
| if (is_unsigned) { |
| #if CYTHON_USE_PYLONG_INTERNALS |
| const digit* digits = ((PyLongObject*)x)->ob_digit; |
| switch (Py_SIZE(x)) { |
| case 0: return (enum lm::ngram::Config::ARPALoadComplain) 0; |
| case 1: __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, digit, digits[0]) |
| case 2: |
| if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) > 1 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) >= 2 * PyLong_SHIFT) { |
| return (enum lm::ngram::Config::ARPALoadComplain) (((((enum lm::ngram::Config::ARPALoadComplain)digits[1]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[0])); |
| } |
| } |
| break; |
| case 3: |
| if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) > 2 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) >= 3 * PyLong_SHIFT) { |
| return (enum lm::ngram::Config::ARPALoadComplain) (((((((enum lm::ngram::Config::ARPALoadComplain)digits[2]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[1]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[0])); |
| } |
| } |
| break; |
| case 4: |
| if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) > 3 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, 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 lm::ngram::Config::ARPALoadComplain) >= 4 * PyLong_SHIFT) { |
| return (enum lm::ngram::Config::ARPALoadComplain) (((((((((enum lm::ngram::Config::ARPALoadComplain)digits[3]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[2]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[1]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[0])); |
| } |
| } |
| break; |
| } |
| #endif |
| #if CYTHON_COMPILING_IN_CPYTHON |
| 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 lm::ngram::Config::ARPALoadComplain) -1; |
| if (unlikely(result == 1)) |
| goto raise_neg_overflow; |
| } |
| #endif |
| if (sizeof(enum lm::ngram::Config::ARPALoadComplain) <= sizeof(unsigned long)) { |
| __PYX_VERIFY_RETURN_INT_EXC(enum lm::ngram::Config::ARPALoadComplain, unsigned long, PyLong_AsUnsignedLong(x)) |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(enum lm::ngram::Config::ARPALoadComplain) <= sizeof(unsigned PY_LONG_LONG)) { |
| __PYX_VERIFY_RETURN_INT_EXC(enum lm::ngram::Config::ARPALoadComplain, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) |
| #endif |
| } |
| } else { |
| #if CYTHON_USE_PYLONG_INTERNALS |
| const digit* digits = ((PyLongObject*)x)->ob_digit; |
| switch (Py_SIZE(x)) { |
| case 0: return (enum lm::ngram::Config::ARPALoadComplain) 0; |
| case -1: __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, sdigit, (sdigit) (-(sdigit)digits[0])) |
| case 1: __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, digit, +digits[0]) |
| case -2: |
| if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) - 1 > 1 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) - 1 > 2 * PyLong_SHIFT) { |
| return (enum lm::ngram::Config::ARPALoadComplain) (((enum lm::ngram::Config::ARPALoadComplain)-1)*(((((enum lm::ngram::Config::ARPALoadComplain)digits[1]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[0]))); |
| } |
| } |
| break; |
| case 2: |
| if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) > 1 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) - 1 > 2 * PyLong_SHIFT) { |
| return (enum lm::ngram::Config::ARPALoadComplain) ((((((enum lm::ngram::Config::ARPALoadComplain)digits[1]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[0]))); |
| } |
| } |
| break; |
| case -3: |
| if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) - 1 > 2 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) - 1 > 3 * PyLong_SHIFT) { |
| return (enum lm::ngram::Config::ARPALoadComplain) (((enum lm::ngram::Config::ARPALoadComplain)-1)*(((((((enum lm::ngram::Config::ARPALoadComplain)digits[2]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[1]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[0]))); |
| } |
| } |
| break; |
| case 3: |
| if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) > 2 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) |
| } else if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) - 1 > 3 * PyLong_SHIFT) { |
| return (enum lm::ngram::Config::ARPALoadComplain) ((((((((enum lm::ngram::Config::ARPALoadComplain)digits[2]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[1]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[0]))); |
| } |
| } |
| break; |
| case -4: |
| if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) - 1 > 3 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, 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 lm::ngram::Config::ARPALoadComplain) - 1 > 4 * PyLong_SHIFT) { |
| return (enum lm::ngram::Config::ARPALoadComplain) (((enum lm::ngram::Config::ARPALoadComplain)-1)*(((((((((enum lm::ngram::Config::ARPALoadComplain)digits[3]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[2]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[1]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[0]))); |
| } |
| } |
| break; |
| case 4: |
| if (8 * sizeof(enum lm::ngram::Config::ARPALoadComplain) > 3 * PyLong_SHIFT) { |
| if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { |
| __PYX_VERIFY_RETURN_INT(enum lm::ngram::Config::ARPALoadComplain, 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 lm::ngram::Config::ARPALoadComplain) - 1 > 4 * PyLong_SHIFT) { |
| return (enum lm::ngram::Config::ARPALoadComplain) ((((((((((enum lm::ngram::Config::ARPALoadComplain)digits[3]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[2]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[1]) << PyLong_SHIFT) | (enum lm::ngram::Config::ARPALoadComplain)digits[0]))); |
| } |
| } |
| break; |
| } |
| #endif |
| if (sizeof(enum lm::ngram::Config::ARPALoadComplain) <= sizeof(long)) { |
| __PYX_VERIFY_RETURN_INT_EXC(enum lm::ngram::Config::ARPALoadComplain, long, PyLong_AsLong(x)) |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(enum lm::ngram::Config::ARPALoadComplain) <= sizeof(PY_LONG_LONG)) { |
| __PYX_VERIFY_RETURN_INT_EXC(enum lm::ngram::Config::ARPALoadComplain, PY_LONG_LONG, PyLong_AsLongLong(x)) |
| #endif |
| } |
| } |
| { |
| #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) |
| PyErr_SetString(PyExc_RuntimeError, |
| "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); |
| #else |
| enum lm::ngram::Config::ARPALoadComplain val; |
| PyObject *v = __Pyx_PyNumber_IntOrLong(x); |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(v) && !PyLong_Check(v)) { |
| PyObject *tmp = v; |
| v = PyNumber_Long(tmp); |
| Py_DECREF(tmp); |
| } |
| #endif |
| if (likely(v)) { |
| int one = 1; int is_little = (int)*(unsigned char *)&one; |
| unsigned char *bytes = (unsigned char *)&val; |
| int ret = _PyLong_AsByteArray((PyLongObject *)v, |
| bytes, sizeof(val), |
| is_little, !is_unsigned); |
| Py_DECREF(v); |
| if (likely(!ret)) |
| return val; |
| } |
| #endif |
| return (enum lm::ngram::Config::ARPALoadComplain) -1; |
| } |
| } else { |
| enum lm::ngram::Config::ARPALoadComplain val; |
| PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); |
| if (!tmp) return (enum lm::ngram::Config::ARPALoadComplain) -1; |
| val = __Pyx_PyInt_As_enum__lm_3a__3a_ngram_3a__3a_Config_3a__3a_ARPALoadComplain(tmp); |
| Py_DECREF(tmp); |
| return val; |
| } |
| raise_overflow: |
| PyErr_SetString(PyExc_OverflowError, |
| "value too large to convert to enum lm::ngram::Config::ARPALoadComplain"); |
| return (enum lm::ngram::Config::ARPALoadComplain) -1; |
| raise_neg_overflow: |
| PyErr_SetString(PyExc_OverflowError, |
| "can't convert negative value to enum lm::ngram::Config::ARPALoadComplain"); |
| return (enum lm::ngram::Config::ARPALoadComplain) -1; |
| } |
|
|
| |
| static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { |
| const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; |
| const int is_unsigned = neg_one > const_zero; |
| if (is_unsigned) { |
| if (sizeof(long) < sizeof(long)) { |
| return PyInt_FromLong((long) value); |
| } else if (sizeof(long) <= sizeof(unsigned long)) { |
| return PyLong_FromUnsignedLong((unsigned long) value); |
| #ifdef HAVE_LONG_LONG |
| } 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 PyInt_FromLong((long) value); |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { |
| return PyLong_FromLongLong((PY_LONG_LONG) value); |
| #endif |
| } |
| } |
| { |
| int one = 1; int little = (int)*(unsigned char *)&one; |
| unsigned char *bytes = (unsigned char *)&value; |
| return _PyLong_FromByteArray(bytes, sizeof(long), |
| little, !is_unsigned); |
| } |
| } |
|
|
| |
| static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { |
| const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; |
| const int is_unsigned = neg_one > const_zero; |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(PyInt_Check(x))) { |
| if (sizeof(long) < sizeof(long)) { |
| __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) |
| } else { |
| long val = PyInt_AS_LONG(x); |
| if (is_unsigned && unlikely(val < 0)) { |
| goto raise_neg_overflow; |
| } |
| return (long) val; |
| } |
| } else |
| #endif |
| if (likely(PyLong_Check(x))) { |
| if (is_unsigned) { |
| #if CYTHON_USE_PYLONG_INTERNALS |
| const digit* digits = ((PyLongObject*)x)->ob_digit; |
| switch (Py_SIZE(x)) { |
| case 0: return (long) 0; |
| case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) |
| 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 |
| 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)) |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { |
| __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) |
| #endif |
| } |
| } else { |
| #if CYTHON_USE_PYLONG_INTERNALS |
| const digit* digits = ((PyLongObject*)x)->ob_digit; |
| switch (Py_SIZE(x)) { |
| case 0: return (long) 0; |
| case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) |
| case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) |
| 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)) |
| #ifdef HAVE_LONG_LONG |
| } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { |
| __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) |
| #endif |
| } |
| } |
| { |
| #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) |
| PyErr_SetString(PyExc_RuntimeError, |
| "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); |
| #else |
| long val; |
| PyObject *v = __Pyx_PyNumber_IntOrLong(x); |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(v) && !PyLong_Check(v)) { |
| PyObject *tmp = v; |
| v = PyNumber_Long(tmp); |
| Py_DECREF(tmp); |
| } |
| #endif |
| if (likely(v)) { |
| int one = 1; int is_little = (int)*(unsigned char *)&one; |
| unsigned char *bytes = (unsigned char *)&val; |
| int ret = _PyLong_AsByteArray((PyLongObject *)v, |
| bytes, sizeof(val), |
| is_little, !is_unsigned); |
| Py_DECREF(v); |
| if (likely(!ret)) |
| return val; |
| } |
| #endif |
| return (long) -1; |
| } |
| } else { |
| long val; |
| PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); |
| if (!tmp) return (long) -1; |
| val = __Pyx_PyInt_As_long(tmp); |
| Py_DECREF(tmp); |
| 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; |
| } |
|
|
| |
| #if CYTHON_COMPILING_IN_CPYTHON |
| static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { |
| while (a) { |
| a = a->tp_base; |
| 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); |
| } |
| #if PY_MAJOR_VERSION == 2 |
| static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { |
| PyObject *exception, *value, *tb; |
| int res; |
| __Pyx_PyThreadState_declare |
| __Pyx_PyThreadState_assign |
| __Pyx_ErrFetch(&exception, &value, &tb); |
| res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; |
| if (unlikely(res == -1)) { |
| PyErr_WriteUnraisable(err); |
| res = 0; |
| } |
| if (!res) { |
| res = PyObject_IsSubclass(err, exc_type2); |
| if (unlikely(res == -1)) { |
| PyErr_WriteUnraisable(err); |
| res = 0; |
| } |
| } |
| __Pyx_ErrRestore(exception, value, tb); |
| return res; |
| } |
| #else |
| static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { |
| int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; |
| if (!res) { |
| res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); |
| } |
| return res; |
| } |
| #endif |
| 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); |
| #if PY_MAJOR_VERSION >= 3 |
| for (i=0; i<n; i++) { |
| if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1; |
| } |
| #endif |
| for (i=0; i<n; i++) { |
| PyObject *t = PyTuple_GET_ITEM(tuple, i); |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(exc_type == t)) return 1; |
| #endif |
| 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 |
|
|
| |
| static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { |
| PyObject* fake_module; |
| PyTypeObject* cached_type = NULL; |
| fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI); |
| if (!fake_module) return NULL; |
| Py_INCREF(fake_module); |
| cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name); |
| if (cached_type) { |
| if (!PyType_Check((PyObject*)cached_type)) { |
| PyErr_Format(PyExc_TypeError, |
| "Shared Cython type %.200s is not a type object", |
| type->tp_name); |
| goto bad; |
| } |
| if (cached_type->tp_basicsize != type->tp_basicsize) { |
| PyErr_Format(PyExc_TypeError, |
| "Shared Cython type %.200s has the wrong size, try recompiling", |
| type->tp_name); |
| goto bad; |
| } |
| } else { |
| if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; |
| PyErr_Clear(); |
| if (PyType_Ready(type) < 0) goto bad; |
| if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0) |
| goto bad; |
| Py_INCREF(type); |
| cached_type = type; |
| } |
| done: |
| Py_DECREF(fake_module); |
| return cached_type; |
| bad: |
| Py_XDECREF(cached_type); |
| cached_type = NULL; |
| goto done; |
| } |
|
|
| |
| 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 |
| 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 PY_MAJOR_VERSION >= 3 |
| #ifdef __Pyx_CyFunction_USED |
| if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) |
| #else |
| if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type))) |
| #endif |
| #else |
| #ifdef __Pyx_CyFunction_USED |
| if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) |
| #else |
| if (likely(PyFunction_Check(descr))) |
| #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 (descr != NULL) { |
| *method = descr; |
| return 0; |
| } |
| PyErr_Format(PyExc_AttributeError, |
| #if PY_MAJOR_VERSION >= 3 |
| "'%.50s' object has no attribute '%U'", |
| tp->tp_name, name); |
| #else |
| "'%.50s' object has no attribute '%.400s'", |
| tp->tp_name, PyString_AS_STRING(name)); |
| #endif |
| 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; |
| } |
|
|
| |
| static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) { |
| PyObject *result = __Pyx_PyObject_CallOneArg(method, arg); |
| Py_DECREF(method); |
| return result; |
| } |
| static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) { |
| 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); |
| } |
|
|
| |
| #include <structmember.h> |
| #include <frameobject.h> |
| #define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom) |
| static int __Pyx_PyGen__FetchStopIterationValue(CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject **pvalue) { |
| PyObject *et, *ev, *tb; |
| PyObject *value = NULL; |
| __Pyx_ErrFetch(&et, &ev, &tb); |
| if (!et) { |
| Py_XDECREF(tb); |
| Py_XDECREF(ev); |
| Py_INCREF(Py_None); |
| *pvalue = Py_None; |
| return 0; |
| } |
| if (likely(et == PyExc_StopIteration)) { |
| if (!ev) { |
| Py_INCREF(Py_None); |
| value = Py_None; |
| } |
| #if PY_VERSION_HEX >= 0x030300A0 |
| else if (Py_TYPE(ev) == (PyTypeObject*)PyExc_StopIteration) { |
| value = ((PyStopIterationObject *)ev)->value; |
| Py_INCREF(value); |
| Py_DECREF(ev); |
| } |
| #endif |
| else if (unlikely(PyTuple_Check(ev))) { |
| if (PyTuple_GET_SIZE(ev) >= 1) { |
| #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS |
| value = PyTuple_GET_ITEM(ev, 0); |
| Py_INCREF(value); |
| #else |
| value = PySequence_ITEM(ev, 0); |
| #endif |
| } else { |
| Py_INCREF(Py_None); |
| value = Py_None; |
| } |
| Py_DECREF(ev); |
| } |
| else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) { |
| value = ev; |
| } |
| if (likely(value)) { |
| Py_XDECREF(tb); |
| Py_DECREF(et); |
| *pvalue = value; |
| return 0; |
| } |
| } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) { |
| __Pyx_ErrRestore(et, ev, tb); |
| return -1; |
| } |
| PyErr_NormalizeException(&et, &ev, &tb); |
| if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) { |
| __Pyx_ErrRestore(et, ev, tb); |
| return -1; |
| } |
| Py_XDECREF(tb); |
| Py_DECREF(et); |
| #if PY_VERSION_HEX >= 0x030300A0 |
| value = ((PyStopIterationObject *)ev)->value; |
| Py_INCREF(value); |
| Py_DECREF(ev); |
| #else |
| { |
| PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args); |
| Py_DECREF(ev); |
| if (likely(args)) { |
| value = PySequence_GetItem(args, 0); |
| Py_DECREF(args); |
| } |
| if (unlikely(!value)) { |
| __Pyx_ErrRestore(NULL, NULL, NULL); |
| Py_INCREF(Py_None); |
| value = Py_None; |
| } |
| } |
| #endif |
| *pvalue = value; |
| return 0; |
| } |
| static CYTHON_INLINE |
| void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) { |
| PyObject *t, *v, *tb; |
| t = exc_state->exc_type; |
| v = exc_state->exc_value; |
| tb = exc_state->exc_traceback; |
| exc_state->exc_type = NULL; |
| exc_state->exc_value = NULL; |
| exc_state->exc_traceback = NULL; |
| Py_XDECREF(t); |
| Py_XDECREF(v); |
| Py_XDECREF(tb); |
| } |
| #define __Pyx_Coroutine_AlreadyRunningError(gen) (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL) |
| static void __Pyx__Coroutine_AlreadyRunningError(CYTHON_UNUSED __pyx_CoroutineObject *gen) { |
| const char *msg; |
| if ((0)) { |
| #ifdef __Pyx_Coroutine_USED |
| } else if (__Pyx_Coroutine_Check((PyObject*)gen)) { |
| msg = "coroutine already executing"; |
| #endif |
| #ifdef __Pyx_AsyncGen_USED |
| } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) { |
| msg = "async generator already executing"; |
| #endif |
| } else { |
| msg = "generator already executing"; |
| } |
| PyErr_SetString(PyExc_ValueError, msg); |
| } |
| #define __Pyx_Coroutine_NotStartedError(gen) (__Pyx__Coroutine_NotStartedError(gen), (PyObject*)NULL) |
| static void __Pyx__Coroutine_NotStartedError(CYTHON_UNUSED PyObject *gen) { |
| const char *msg; |
| if ((0)) { |
| #ifdef __Pyx_Coroutine_USED |
| } else if (__Pyx_Coroutine_Check(gen)) { |
| msg = "can't send non-None value to a just-started coroutine"; |
| #endif |
| #ifdef __Pyx_AsyncGen_USED |
| } else if (__Pyx_AsyncGen_CheckExact(gen)) { |
| msg = "can't send non-None value to a just-started async generator"; |
| #endif |
| } else { |
| msg = "can't send non-None value to a just-started generator"; |
| } |
| PyErr_SetString(PyExc_TypeError, msg); |
| } |
| #define __Pyx_Coroutine_AlreadyTerminatedError(gen, value, closing) (__Pyx__Coroutine_AlreadyTerminatedError(gen, value, closing), (PyObject*)NULL) |
| static void __Pyx__Coroutine_AlreadyTerminatedError(CYTHON_UNUSED PyObject *gen, PyObject *value, CYTHON_UNUSED int closing) { |
| #ifdef __Pyx_Coroutine_USED |
| if (!closing && __Pyx_Coroutine_Check(gen)) { |
| PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine"); |
| } else |
| #endif |
| if (value) { |
| #ifdef __Pyx_AsyncGen_USED |
| if (__Pyx_AsyncGen_CheckExact(gen)) |
| PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration); |
| else |
| #endif |
| PyErr_SetNone(PyExc_StopIteration); |
| } |
| } |
| static |
| PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, int closing) { |
| __Pyx_PyThreadState_declare |
| PyThreadState *tstate; |
| __Pyx_ExcInfoStruct *exc_state; |
| PyObject *retval; |
| assert(!self->is_running); |
| if (unlikely(self->resume_label == 0)) { |
| if (unlikely(value && value != Py_None)) { |
| return __Pyx_Coroutine_NotStartedError((PyObject*)self); |
| } |
| } |
| if (unlikely(self->resume_label == -1)) { |
| return __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing); |
| } |
| #if CYTHON_FAST_THREAD_STATE |
| __Pyx_PyThreadState_assign |
| tstate = __pyx_tstate; |
| #else |
| tstate = __Pyx_PyThreadState_Current; |
| #endif |
| exc_state = &self->gi_exc_state; |
| if (exc_state->exc_type) { |
| #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON |
| #else |
| if (exc_state->exc_traceback) { |
| PyTracebackObject *tb = (PyTracebackObject *) exc_state->exc_traceback; |
| PyFrameObject *f = tb->tb_frame; |
| Py_XINCREF(tstate->frame); |
| assert(f->f_back == NULL); |
| f->f_back = tstate->frame; |
| } |
| #endif |
| } |
| #if CYTHON_USE_EXC_INFO_STACK |
| exc_state->previous_item = tstate->exc_info; |
| tstate->exc_info = exc_state; |
| #else |
| if (exc_state->exc_type) { |
| __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback); |
| } else { |
| __Pyx_Coroutine_ExceptionClear(exc_state); |
| __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback); |
| } |
| #endif |
| self->is_running = 1; |
| retval = self->body((PyObject *) self, tstate, value); |
| self->is_running = 0; |
| #if CYTHON_USE_EXC_INFO_STACK |
| exc_state = &self->gi_exc_state; |
| tstate->exc_info = exc_state->previous_item; |
| exc_state->previous_item = NULL; |
| __Pyx_Coroutine_ResetFrameBackpointer(exc_state); |
| #endif |
| return retval; |
| } |
| static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) { |
| PyObject *exc_tb = exc_state->exc_traceback; |
| if (likely(exc_tb)) { |
| #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON |
| #else |
| PyTracebackObject *tb = (PyTracebackObject *) exc_tb; |
| PyFrameObject *f = tb->tb_frame; |
| Py_CLEAR(f->f_back); |
| #endif |
| } |
| } |
| static CYTHON_INLINE |
| PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *retval) { |
| if (unlikely(!retval)) { |
| __Pyx_PyThreadState_declare |
| __Pyx_PyThreadState_assign |
| if (!__Pyx_PyErr_Occurred()) { |
| PyObject *exc = PyExc_StopIteration; |
| #ifdef __Pyx_AsyncGen_USED |
| if (__Pyx_AsyncGen_CheckExact(gen)) |
| exc = __Pyx_PyExc_StopAsyncIteration; |
| #endif |
| __Pyx_PyErr_SetNone(exc); |
| } |
| } |
| return retval; |
| } |
| static CYTHON_INLINE |
| PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) { |
| PyObject *ret; |
| PyObject *val = NULL; |
| __Pyx_Coroutine_Undelegate(gen); |
| __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val); |
| ret = __Pyx_Coroutine_SendEx(gen, val, 0); |
| Py_XDECREF(val); |
| return ret; |
| } |
| static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) { |
| PyObject *retval; |
| __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; |
| PyObject *yf = gen->yieldfrom; |
| if (unlikely(gen->is_running)) |
| return __Pyx_Coroutine_AlreadyRunningError(gen); |
| if (yf) { |
| PyObject *ret; |
| gen->is_running = 1; |
| #ifdef __Pyx_Generator_USED |
| if (__Pyx_Generator_CheckExact(yf)) { |
| ret = __Pyx_Coroutine_Send(yf, value); |
| } else |
| #endif |
| #ifdef __Pyx_Coroutine_USED |
| if (__Pyx_Coroutine_Check(yf)) { |
| ret = __Pyx_Coroutine_Send(yf, value); |
| } else |
| #endif |
| #ifdef __Pyx_AsyncGen_USED |
| if (__pyx_PyAsyncGenASend_CheckExact(yf)) { |
| ret = __Pyx_async_gen_asend_send(yf, value); |
| } else |
| #endif |
| #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) |
| if (PyGen_CheckExact(yf)) { |
| ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); |
| } else |
| #endif |
| #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) |
| if (PyCoro_CheckExact(yf)) { |
| ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value); |
| } else |
| #endif |
| { |
| if (value == Py_None) |
| ret = Py_TYPE(yf)->tp_iternext(yf); |
| else |
| ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value); |
| } |
| gen->is_running = 0; |
| if (likely(ret)) { |
| return ret; |
| } |
| retval = __Pyx_Coroutine_FinishDelegation(gen); |
| } else { |
| retval = __Pyx_Coroutine_SendEx(gen, value, 0); |
| } |
| return __Pyx_Coroutine_MethodReturn(self, retval); |
| } |
| static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) { |
| PyObject *retval = NULL; |
| int err = 0; |
| #ifdef __Pyx_Generator_USED |
| if (__Pyx_Generator_CheckExact(yf)) { |
| retval = __Pyx_Coroutine_Close(yf); |
| if (!retval) |
| return -1; |
| } else |
| #endif |
| #ifdef __Pyx_Coroutine_USED |
| if (__Pyx_Coroutine_Check(yf)) { |
| retval = __Pyx_Coroutine_Close(yf); |
| if (!retval) |
| return -1; |
| } else |
| if (__Pyx_CoroutineAwait_CheckExact(yf)) { |
| retval = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf, NULL); |
| if (!retval) |
| return -1; |
| } else |
| #endif |
| #ifdef __Pyx_AsyncGen_USED |
| if (__pyx_PyAsyncGenASend_CheckExact(yf)) { |
| retval = __Pyx_async_gen_asend_close(yf, NULL); |
| } else |
| if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) { |
| retval = __Pyx_async_gen_athrow_close(yf, NULL); |
| } else |
| #endif |
| { |
| PyObject *meth; |
| gen->is_running = 1; |
| meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_close); |
| if (unlikely(!meth)) { |
| if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { |
| PyErr_WriteUnraisable(yf); |
| } |
| PyErr_Clear(); |
| } else { |
| retval = PyObject_CallFunction(meth, NULL); |
| Py_DECREF(meth); |
| if (!retval) |
| err = -1; |
| } |
| gen->is_running = 0; |
| } |
| Py_XDECREF(retval); |
| return err; |
| } |
| static PyObject *__Pyx_Generator_Next(PyObject *self) { |
| __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self; |
| PyObject *yf = gen->yieldfrom; |
| if (unlikely(gen->is_running)) |
| return __Pyx_Coroutine_AlreadyRunningError(gen); |
| if (yf) { |
| PyObject *ret; |
| gen->is_running = 1; |
| #ifdef __Pyx_Generator_USED |
| if (__Pyx_Generator_CheckExact(yf)) { |
| ret = __Pyx_Generator_Next(yf); |
| } else |
| #endif |
| #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3) |
| if (PyGen_CheckExact(yf)) { |
| ret = _PyGen_Send((PyGenObject*)yf, NULL); |
| } else |
| #endif |
| #ifdef __Pyx_Coroutine_USED |
| if (__Pyx_Coroutine_Check(yf)) { |
| ret = __Pyx_Coroutine_Send(yf, Py_None); |
| } else |
| #endif |
| ret = Py_TYPE(yf)->tp_iternext(yf); |
| gen->is_running = 0; |
| if (likely(ret)) { |
| return ret; |
| } |
| return __Pyx_Coroutine_FinishDelegation(gen); |
| } |
| return __Pyx_Coroutine_SendEx(gen, Py_None, 0); |
| } |
| static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, CYTHON_UNUSED PyObject *arg) { |
| return __Pyx_Coroutine_Close(self); |
| } |
| static PyObject *__Pyx_Coroutine_Close(PyObject *self) { |
| __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; |
| PyObject *retval, *raised_exception; |
| PyObject *yf = gen->yieldfrom; |
| int err = 0; |
| if (unlikely(gen->is_running)) |
| return __Pyx_Coroutine_AlreadyRunningError(gen); |
| if (yf) { |
| Py_INCREF(yf); |
| err = __Pyx_Coroutine_CloseIter(gen, yf); |
| __Pyx_Coroutine_Undelegate(gen); |
| Py_DECREF(yf); |
| } |
| if (err == 0) |
| PyErr_SetNone(PyExc_GeneratorExit); |
| retval = __Pyx_Coroutine_SendEx(gen, NULL, 1); |
| if (unlikely(retval)) { |
| const char *msg; |
| Py_DECREF(retval); |
| if ((0)) { |
| #ifdef __Pyx_Coroutine_USED |
| } else if (__Pyx_Coroutine_Check(self)) { |
| msg = "coroutine ignored GeneratorExit"; |
| #endif |
| #ifdef __Pyx_AsyncGen_USED |
| } else if (__Pyx_AsyncGen_CheckExact(self)) { |
| #if PY_VERSION_HEX < 0x03060000 |
| msg = "async generator ignored GeneratorExit - might require Python 3.6+ finalisation (PEP 525)"; |
| #else |
| msg = "async generator ignored GeneratorExit"; |
| #endif |
| #endif |
| } else { |
| msg = "generator ignored GeneratorExit"; |
| } |
| PyErr_SetString(PyExc_RuntimeError, msg); |
| return NULL; |
| } |
| raised_exception = PyErr_Occurred(); |
| if (likely(!raised_exception || __Pyx_PyErr_GivenExceptionMatches2(raised_exception, PyExc_GeneratorExit, PyExc_StopIteration))) { |
| if (raised_exception) PyErr_Clear(); |
| Py_INCREF(Py_None); |
| return Py_None; |
| } |
| return NULL; |
| } |
| static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb, |
| PyObject *args, int close_on_genexit) { |
| __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; |
| PyObject *yf = gen->yieldfrom; |
| if (unlikely(gen->is_running)) |
| return __Pyx_Coroutine_AlreadyRunningError(gen); |
| if (yf) { |
| PyObject *ret; |
| Py_INCREF(yf); |
| if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) { |
| int err = __Pyx_Coroutine_CloseIter(gen, yf); |
| Py_DECREF(yf); |
| __Pyx_Coroutine_Undelegate(gen); |
| if (err < 0) |
| return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0)); |
| goto throw_here; |
| } |
| gen->is_running = 1; |
| if (0 |
| #ifdef __Pyx_Generator_USED |
| || __Pyx_Generator_CheckExact(yf) |
| #endif |
| #ifdef __Pyx_Coroutine_USED |
| || __Pyx_Coroutine_Check(yf) |
| #endif |
| ) { |
| ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit); |
| #ifdef __Pyx_Coroutine_USED |
| } else if (__Pyx_CoroutineAwait_CheckExact(yf)) { |
| ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit); |
| #endif |
| } else { |
| PyObject *meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_throw); |
| if (unlikely(!meth)) { |
| Py_DECREF(yf); |
| if (!PyErr_ExceptionMatches(PyExc_AttributeError)) { |
| gen->is_running = 0; |
| return NULL; |
| } |
| PyErr_Clear(); |
| __Pyx_Coroutine_Undelegate(gen); |
| gen->is_running = 0; |
| goto throw_here; |
| } |
| if (likely(args)) { |
| ret = PyObject_CallObject(meth, args); |
| } else { |
| ret = PyObject_CallFunctionObjArgs(meth, typ, val, tb, NULL); |
| } |
| Py_DECREF(meth); |
| } |
| gen->is_running = 0; |
| Py_DECREF(yf); |
| if (!ret) { |
| ret = __Pyx_Coroutine_FinishDelegation(gen); |
| } |
| return __Pyx_Coroutine_MethodReturn(self, ret); |
| } |
| throw_here: |
| __Pyx_Raise(typ, val, tb, NULL); |
| return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0)); |
| } |
| static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) { |
| PyObject *typ; |
| PyObject *val = NULL; |
| PyObject *tb = NULL; |
| if (!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb)) |
| return NULL; |
| return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1); |
| } |
| static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) { |
| Py_VISIT(exc_state->exc_type); |
| Py_VISIT(exc_state->exc_value); |
| Py_VISIT(exc_state->exc_traceback); |
| return 0; |
| } |
| static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) { |
| Py_VISIT(gen->closure); |
| Py_VISIT(gen->classobj); |
| Py_VISIT(gen->yieldfrom); |
| return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg); |
| } |
| static int __Pyx_Coroutine_clear(PyObject *self) { |
| __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; |
| Py_CLEAR(gen->closure); |
| Py_CLEAR(gen->classobj); |
| Py_CLEAR(gen->yieldfrom); |
| __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state); |
| #ifdef __Pyx_AsyncGen_USED |
| if (__Pyx_AsyncGen_CheckExact(self)) { |
| Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer); |
| } |
| #endif |
| Py_CLEAR(gen->gi_code); |
| Py_CLEAR(gen->gi_name); |
| Py_CLEAR(gen->gi_qualname); |
| Py_CLEAR(gen->gi_modulename); |
| return 0; |
| } |
| static void __Pyx_Coroutine_dealloc(PyObject *self) { |
| __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; |
| PyObject_GC_UnTrack(gen); |
| if (gen->gi_weakreflist != NULL) |
| PyObject_ClearWeakRefs(self); |
| if (gen->resume_label >= 0) { |
| PyObject_GC_Track(self); |
| #if PY_VERSION_HEX >= 0x030400a1 && CYTHON_USE_TP_FINALIZE |
| if (PyObject_CallFinalizerFromDealloc(self)) |
| #else |
| Py_TYPE(gen)->tp_del(self); |
| if (self->ob_refcnt > 0) |
| #endif |
| { |
| return; |
| } |
| PyObject_GC_UnTrack(self); |
| } |
| #ifdef __Pyx_AsyncGen_USED |
| if (__Pyx_AsyncGen_CheckExact(self)) { |
| |
| |
| |
| Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer); |
| } |
| #endif |
| __Pyx_Coroutine_clear(self); |
| PyObject_GC_Del(gen); |
| } |
| static void __Pyx_Coroutine_del(PyObject *self) { |
| PyObject *error_type, *error_value, *error_traceback; |
| __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self; |
| __Pyx_PyThreadState_declare |
| if (gen->resume_label < 0) { |
| return; |
| } |
| #if !CYTHON_USE_TP_FINALIZE |
| assert(self->ob_refcnt == 0); |
| self->ob_refcnt = 1; |
| #endif |
| __Pyx_PyThreadState_assign |
| __Pyx_ErrFetch(&error_type, &error_value, &error_traceback); |
| #ifdef __Pyx_AsyncGen_USED |
| if (__Pyx_AsyncGen_CheckExact(self)) { |
| __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self; |
| PyObject *finalizer = agen->ag_finalizer; |
| if (finalizer && !agen->ag_closed) { |
| PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self); |
| if (unlikely(!res)) { |
| PyErr_WriteUnraisable(self); |
| } else { |
| Py_DECREF(res); |
| } |
| __Pyx_ErrRestore(error_type, error_value, error_traceback); |
| return; |
| } |
| } |
| #endif |
| if (unlikely(gen->resume_label == 0 && !error_value)) { |
| #ifdef __Pyx_Coroutine_USED |
| #ifdef __Pyx_Generator_USED |
| if (!__Pyx_Generator_CheckExact(self)) |
| #endif |
| { |
| PyObject_GC_UnTrack(self); |
| #if PY_MAJOR_VERSION >= 3 || defined(PyErr_WarnFormat) |
| if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0)) |
| PyErr_WriteUnraisable(self); |
| #else |
| {PyObject *msg; |
| char *cmsg; |
| #if CYTHON_COMPILING_IN_PYPY |
| msg = NULL; |
| cmsg = (char*) "coroutine was never awaited"; |
| #else |
| char *cname; |
| PyObject *qualname; |
| qualname = gen->gi_qualname; |
| cname = PyString_AS_STRING(qualname); |
| msg = PyString_FromFormat("coroutine '%.50s' was never awaited", cname); |
| if (unlikely(!msg)) { |
| PyErr_Clear(); |
| cmsg = (char*) "coroutine was never awaited"; |
| } else { |
| cmsg = PyString_AS_STRING(msg); |
| } |
| #endif |
| if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, cmsg, 1) < 0)) |
| PyErr_WriteUnraisable(self); |
| Py_XDECREF(msg);} |
| #endif |
| PyObject_GC_Track(self); |
| } |
| #endif |
| } else { |
| PyObject *res = __Pyx_Coroutine_Close(self); |
| if (unlikely(!res)) { |
| if (PyErr_Occurred()) |
| PyErr_WriteUnraisable(self); |
| } else { |
| Py_DECREF(res); |
| } |
| } |
| __Pyx_ErrRestore(error_type, error_value, error_traceback); |
| #if !CYTHON_USE_TP_FINALIZE |
| assert(self->ob_refcnt > 0); |
| if (--self->ob_refcnt == 0) { |
| return; |
| } |
| { |
| Py_ssize_t refcnt = self->ob_refcnt; |
| _Py_NewReference(self); |
| self->ob_refcnt = refcnt; |
| } |
| #if CYTHON_COMPILING_IN_CPYTHON |
| assert(PyType_IS_GC(self->ob_type) && |
| _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED); |
| _Py_DEC_REFTOTAL; |
| #endif |
| #ifdef COUNT_ALLOCS |
| --Py_TYPE(self)->tp_frees; |
| --Py_TYPE(self)->tp_allocs; |
| #endif |
| #endif |
| } |
| static PyObject * |
| __Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context) |
| { |
| PyObject *name = self->gi_name; |
| if (unlikely(!name)) name = Py_None; |
| Py_INCREF(name); |
| return name; |
| } |
| static int |
| __Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context) |
| { |
| PyObject *tmp; |
| #if PY_MAJOR_VERSION >= 3 |
| if (unlikely(value == NULL || !PyUnicode_Check(value))) |
| #else |
| if (unlikely(value == NULL || !PyString_Check(value))) |
| #endif |
| { |
| PyErr_SetString(PyExc_TypeError, |
| "__name__ must be set to a string object"); |
| return -1; |
| } |
| tmp = self->gi_name; |
| Py_INCREF(value); |
| self->gi_name = value; |
| Py_XDECREF(tmp); |
| return 0; |
| } |
| static PyObject * |
| __Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context) |
| { |
| PyObject *name = self->gi_qualname; |
| if (unlikely(!name)) name = Py_None; |
| Py_INCREF(name); |
| return name; |
| } |
| static int |
| __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context) |
| { |
| PyObject *tmp; |
| #if PY_MAJOR_VERSION >= 3 |
| if (unlikely(value == NULL || !PyUnicode_Check(value))) |
| #else |
| if (unlikely(value == NULL || !PyString_Check(value))) |
| #endif |
| { |
| PyErr_SetString(PyExc_TypeError, |
| "__qualname__ must be set to a string object"); |
| return -1; |
| } |
| tmp = self->gi_qualname; |
| Py_INCREF(value); |
| self->gi_qualname = value; |
| Py_XDECREF(tmp); |
| return 0; |
| } |
| static __pyx_CoroutineObject *__Pyx__Coroutine_New( |
| PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, |
| PyObject *name, PyObject *qualname, PyObject *module_name) { |
| __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type); |
| if (unlikely(!gen)) |
| return NULL; |
| return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name); |
| } |
| static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit( |
| __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure, |
| PyObject *name, PyObject *qualname, PyObject *module_name) { |
| gen->body = body; |
| gen->closure = closure; |
| Py_XINCREF(closure); |
| gen->is_running = 0; |
| gen->resume_label = 0; |
| gen->classobj = NULL; |
| gen->yieldfrom = NULL; |
| gen->gi_exc_state.exc_type = NULL; |
| gen->gi_exc_state.exc_value = NULL; |
| gen->gi_exc_state.exc_traceback = NULL; |
| #if CYTHON_USE_EXC_INFO_STACK |
| gen->gi_exc_state.previous_item = NULL; |
| #endif |
| gen->gi_weakreflist = NULL; |
| Py_XINCREF(qualname); |
| gen->gi_qualname = qualname; |
| Py_XINCREF(name); |
| gen->gi_name = name; |
| Py_XINCREF(module_name); |
| gen->gi_modulename = module_name; |
| Py_XINCREF(code); |
| gen->gi_code = code; |
| PyObject_GC_Track(gen); |
| return gen; |
| } |
|
|
| |
| static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) { |
| #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) |
| int result; |
| PyObject *globals, *result_obj; |
| globals = PyDict_New(); if (unlikely(!globals)) goto ignore; |
| result = PyDict_SetItemString(globals, "_cython_coroutine_type", |
| #ifdef __Pyx_Coroutine_USED |
| (PyObject*)__pyx_CoroutineType); |
| #else |
| Py_None); |
| #endif |
| if (unlikely(result < 0)) goto ignore; |
| result = PyDict_SetItemString(globals, "_cython_generator_type", |
| #ifdef __Pyx_Generator_USED |
| (PyObject*)__pyx_GeneratorType); |
| #else |
| Py_None); |
| #endif |
| if (unlikely(result < 0)) goto ignore; |
| if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore; |
| if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore; |
| result_obj = PyRun_String(py_code, Py_file_input, globals, globals); |
| if (unlikely(!result_obj)) goto ignore; |
| Py_DECREF(result_obj); |
| Py_DECREF(globals); |
| return module; |
| ignore: |
| Py_XDECREF(globals); |
| PyErr_WriteUnraisable(module); |
| if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) { |
| Py_DECREF(module); |
| module = NULL; |
| } |
| #else |
| py_code++; |
| #endif |
| return module; |
| } |
|
|
| |
| #ifndef CYTHON_REGISTER_ABCS |
| #define CYTHON_REGISTER_ABCS 1 |
| #endif |
| #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) |
| static PyObject* __Pyx_patch_abc_module(PyObject *module); |
| static PyObject* __Pyx_patch_abc_module(PyObject *module) { |
| module = __Pyx_Coroutine_patch_module( |
| module, "" |
| "if _cython_generator_type is not None:\n" |
| " try: Generator = _module.Generator\n" |
| " except AttributeError: pass\n" |
| " else: Generator.register(_cython_generator_type)\n" |
| "if _cython_coroutine_type is not None:\n" |
| " try: Coroutine = _module.Coroutine\n" |
| " except AttributeError: pass\n" |
| " else: Coroutine.register(_cython_coroutine_type)\n" |
| ); |
| return module; |
| } |
| #endif |
| static int __Pyx_patch_abc(void) { |
| #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) |
| static int abc_patched = 0; |
| if (CYTHON_REGISTER_ABCS && !abc_patched) { |
| PyObject *module; |
| module = PyImport_ImportModule((PY_MAJOR_VERSION >= 3) ? "collections.abc" : "collections"); |
| if (!module) { |
| PyErr_WriteUnraisable(NULL); |
| if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, |
| ((PY_MAJOR_VERSION >= 3) ? |
| "Cython module failed to register with collections.abc module" : |
| "Cython module failed to register with collections module"), 1) < 0)) { |
| return -1; |
| } |
| } else { |
| module = __Pyx_patch_abc_module(module); |
| abc_patched = 1; |
| if (unlikely(!module)) |
| return -1; |
| Py_DECREF(module); |
| } |
| module = PyImport_ImportModule("backports_abc"); |
| if (module) { |
| module = __Pyx_patch_abc_module(module); |
| Py_XDECREF(module); |
| } |
| if (!module) { |
| PyErr_Clear(); |
| } |
| } |
| #else |
| if ((0)) __Pyx_Coroutine_patch_module(NULL, NULL); |
| #endif |
| return 0; |
| } |
|
|
| |
| static PyMethodDef __pyx_Generator_methods[] = { |
| {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O, |
| (char*) PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")}, |
| {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS, |
| (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")}, |
| {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS, |
| (char*) PyDoc_STR("close() -> raise GeneratorExit inside generator.")}, |
| {0, 0, 0, 0} |
| }; |
| static PyMemberDef __pyx_Generator_memberlist[] = { |
| {(char *) "gi_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL}, |
| {(char*) "gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY, |
| (char*) PyDoc_STR("object being iterated by 'yield from', or None")}, |
| {(char*) "gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL}, |
| {0, 0, 0, 0, 0} |
| }; |
| static PyGetSetDef __pyx_Generator_getsets[] = { |
| {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name, |
| (char*) PyDoc_STR("name of the generator"), 0}, |
| {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname, |
| (char*) PyDoc_STR("qualified name of the generator"), 0}, |
| {0, 0, 0, 0, 0} |
| }; |
| static PyTypeObject __pyx_GeneratorType_type = { |
| PyVarObject_HEAD_INIT(0, 0) |
| "generator", |
| sizeof(__pyx_CoroutineObject), |
| 0, |
| (destructor) __Pyx_Coroutine_dealloc, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE, |
| 0, |
| (traverseproc) __Pyx_Coroutine_traverse, |
| 0, |
| 0, |
| offsetof(__pyx_CoroutineObject, gi_weakreflist), |
| 0, |
| (iternextfunc) __Pyx_Generator_Next, |
| __pyx_Generator_methods, |
| __pyx_Generator_memberlist, |
| __pyx_Generator_getsets, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| 0, |
| #if CYTHON_USE_TP_FINALIZE |
| 0, |
| #else |
| __Pyx_Coroutine_del, |
| #endif |
| 0, |
| #if CYTHON_USE_TP_FINALIZE |
| __Pyx_Coroutine_del, |
| #elif PY_VERSION_HEX >= 0x030400a1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b1 |
| 0, |
| #endif |
| #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 |
| 0, |
| #endif |
| }; |
| static int __pyx_Generator_init(void) { |
| __pyx_GeneratorType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; |
| __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter; |
| __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type); |
| if (unlikely(!__pyx_GeneratorType)) { |
| return -1; |
| } |
| return 0; |
| } |
|
|
| |
| static int __Pyx_check_binary_version(void) { |
| char ctversion[4], rtversion[4]; |
| PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); |
| PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); |
| if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { |
| char message[200]; |
| PyOS_snprintf(message, sizeof(message), |
| "compiletime version %s of module '%.100s' " |
| "does not match runtime version %s", |
| ctversion, __Pyx_MODULE_NAME, rtversion); |
| return PyErr_WarnEx(NULL, message, 1); |
| } |
| return 0; |
| } |
|
|
| |
| static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { |
| while (t->p) { |
| #if PY_MAJOR_VERSION < 3 |
| if (t->is_unicode) { |
| *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); |
| } else if (t->intern) { |
| *t->p = PyString_InternFromString(t->s); |
| } else { |
| *t->p = PyString_FromStringAndSize(t->s, t->n - 1); |
| } |
| #else |
| if (t->is_unicode | t->is_str) { |
| if (t->intern) { |
| *t->p = PyUnicode_InternFromString(t->s); |
| } else if (t->encoding) { |
| *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); |
| } else { |
| *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); |
| } |
| } else { |
| *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); |
| } |
| #endif |
| if (!*t->p) |
| return -1; |
| if (PyObject_Hash(*t->p) == -1) |
| return -1; |
| ++t; |
| } |
| return 0; |
| } |
|
|
| static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { |
| return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); |
| } |
| 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_DEFAULT |
| #if !CYTHON_PEP393_ENABLED |
| static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { |
| char* defenc_c; |
| PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); |
| if (!defenc) return NULL; |
| defenc_c = PyBytes_AS_STRING(defenc); |
| #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII |
| { |
| char* end = defenc_c + PyBytes_GET_SIZE(defenc); |
| char* c; |
| for (c = defenc_c; c < end; c++) { |
| if ((unsigned char) (*c) >= 128) { |
| PyUnicode_AsASCIIString(o); |
| return NULL; |
| } |
| } |
| } |
| #endif |
| *length = PyBytes_GET_SIZE(defenc); |
| return defenc_c; |
| } |
| #else |
| static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { |
| if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; |
| #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_DEFAULT |
| if ( |
| #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII |
| __Pyx_sys_getdefaultencoding_not_ascii && |
| #endif |
| PyUnicode_Check(o)) { |
| return __Pyx_PyUnicode_AsStringAndSize(o, length); |
| } else |
| #endif |
| #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) |
| if (PyByteArray_Check(o)) { |
| *length = PyByteArray_GET_SIZE(o); |
| return PyByteArray_AS_STRING(o); |
| } else |
| #endif |
| { |
| 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_IntOrLongWrongResultType(PyObject* result, const char* type_name) { |
| #if PY_MAJOR_VERSION >= 3 |
| if (PyLong_Check(result)) { |
| if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, |
| "__int__ returned non-int (type %.200s). " |
| "The ability to return an instance of a strict subclass of int " |
| "is deprecated, and may be removed in a future version of Python.", |
| Py_TYPE(result)->tp_name)) { |
| Py_DECREF(result); |
| return NULL; |
| } |
| return result; |
| } |
| #endif |
| PyErr_Format(PyExc_TypeError, |
| "__%.4s__ returned non-%.4s (type %.200s)", |
| type_name, type_name, Py_TYPE(result)->tp_name); |
| Py_DECREF(result); |
| return NULL; |
| } |
| static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { |
| #if CYTHON_USE_TYPE_SLOTS |
| PyNumberMethods *m; |
| #endif |
| const char *name = NULL; |
| PyObject *res = NULL; |
| #if PY_MAJOR_VERSION < 3 |
| if (likely(PyInt_Check(x) || PyLong_Check(x))) |
| #else |
| if (likely(PyLong_Check(x))) |
| #endif |
| return __Pyx_NewRef(x); |
| #if CYTHON_USE_TYPE_SLOTS |
| m = Py_TYPE(x)->tp_as_number; |
| #if PY_MAJOR_VERSION < 3 |
| if (m && m->nb_int) { |
| name = "int"; |
| res = m->nb_int(x); |
| } |
| else if (m && m->nb_long) { |
| name = "long"; |
| res = m->nb_long(x); |
| } |
| #else |
| if (likely(m && m->nb_int)) { |
| name = "int"; |
| res = m->nb_int(x); |
| } |
| #endif |
| #else |
| if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { |
| res = PyNumber_Int(x); |
| } |
| #endif |
| if (likely(res)) { |
| #if PY_MAJOR_VERSION < 3 |
| if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { |
| #else |
| if (unlikely(!PyLong_CheckExact(res))) { |
| #endif |
| return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); |
| } |
| } |
| 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 PY_MAJOR_VERSION < 3 |
| if (likely(PyInt_CheckExact(b))) { |
| if (sizeof(Py_ssize_t) >= sizeof(long)) |
| return PyInt_AS_LONG(b); |
| else |
| return PyInt_AsSsize_t(b); |
| } |
| #endif |
| if (likely(PyLong_CheckExact(b))) { |
| #if CYTHON_USE_PYLONG_INTERNALS |
| const digit* digits = ((PyLongObject*)b)->ob_digit; |
| const Py_ssize_t size = Py_SIZE(b); |
| if (likely(__Pyx_sst_abs(size) <= 1)) { |
| ival = likely(size) ? digits[0] : 0; |
| if (size == -1) ival = -ival; |
| return ival; |
| } else { |
| 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 = PyInt_AsSsize_t(x); |
| Py_DECREF(x); |
| return ival; |
| } |
| static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { |
| return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); |
| } |
| static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { |
| return PyInt_FromSize_t(ival); |
| } |
|
|
|
|
| #endif |
|
|