Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-cchardet for openSUSE:Factory checked in at 2021-03-05 13:44:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-cchardet (Old) and /work/SRC/openSUSE:Factory/.python-cchardet.new.2378 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cchardet" Fri Mar 5 13:44:11 2021 rev:4 rq:875285 version:2.1.7 Changes: -------- --- /work/SRC/openSUSE:Factory/python-cchardet/python-cchardet.changes 2020-09-15 16:29:27.170663577 +0200 +++ /work/SRC/openSUSE:Factory/.python-cchardet.new.2378/python-cchardet.changes 2021-03-05 13:44:22.351572900 +0100 @@ -1,0 +2,7 @@ +Fri Feb 26 06:57:19 UTC 2021 - ecsos <ec...@opensuse.org> + +- Update to 2.1.7 + - support Python 3.9 + - drop support for Python 3.5 + +------------------------------------------------------------------- Old: ---- cchardet-2.1.6.tar.gz New: ---- cchardet-2.1.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-cchardet.spec ++++++ --- /var/tmp/diff_new_pack.L8Axvz/_old 2021-03-05 13:44:23.423573875 +0100 +++ /var/tmp/diff_new_pack.L8Axvz/_new 2021-03-05 13:44:23.427573879 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-cchardet # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,9 +19,9 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-cchardet -Version: 2.1.6 +Version: 2.1.7 Release: 0 -Summary: cChardet is high speed universal character encoding detector +Summary: CChardet is high speed universal character encoding detector License: MPL-1.1 OR LGPL-2.1-or-later OR GPL-2.0-or-later URL: https://github.com/PyYoshi/cChardet Source: https://files.pythonhosted.org/packages/source/c/cchardet/cchardet-%{version}.tar.gz ++++++ cchardet-2.1.6.tar.gz -> cchardet-2.1.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cchardet-2.1.6/CHANGES.rst new/cchardet-2.1.7/CHANGES.rst --- old/cchardet-2.1.6/CHANGES.rst 2020-03-16 16:22:53.000000000 +0100 +++ new/cchardet-2.1.7/CHANGES.rst 2020-10-27 09:16:37.000000000 +0100 @@ -1,10 +1,11 @@ CHANGES ======= -2.x.x ------ - +2.1.7 (2020-10-27) +------------------ +- support Python 3.9 +- drop support for Python 3.5 2.1.6 (2020-03-17) ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cchardet-2.1.6/PKG-INFO new/cchardet-2.1.7/PKG-INFO --- old/cchardet-2.1.6/PKG-INFO 2020-03-16 16:31:20.785576600 +0100 +++ new/cchardet-2.1.7/PKG-INFO 2020-10-27 09:17:35.690796400 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: cchardet -Version: 2.1.6 +Version: 2.1.7 Summary: cChardet is high speed universal character encoding detector. Home-page: https://github.com/PyYoshi/cChardet Author: PyYoshi @@ -14,12 +14,18 @@ .. image:: https://badge.fury.io/py/cchardet.svg :target: https://badge.fury.io/py/cchardet :alt: PyPI version - .. image:: https://travis-ci.org/PyYoshi/cChardet.svg?branch=master - :target: https://travis-ci.org/PyYoshi/cChardet - :alt: Travis Ci build status - .. image:: https://ci.appveyor.com/api/projects/status/lwkc4rgf3gncb1ne/branch/master?svg=true - :target: https://ci.appveyor.com/project/PyYoshi/cchardet/branch/master - :alt: AppVeyor build status + + .. image:: https://github.com/PyYoshi/cChardet/workflows/Build%20for%20Linux/badge.svg?branch=master + :target: https://github.com/PyYoshi/cChardet/actions?query=workflow%3A%22Build+for+Linux%22 + :alt: Build for Linux + + .. image:: https://github.com/PyYoshi/cChardet/workflows/Build%20for%20macOS/badge.svg?branch=master + :target: https://github.com/PyYoshi/cChardet/actions?query=workflow%3A%22Build+for+macOS%22 + :alt: Build for macOS + + .. image:: https://github.com/PyYoshi/cChardet/workflows/Build%20for%20windows/badge.svg?branch=master + :target: https://github.com/PyYoshi/cChardet/actions?query=workflow%3A%22Build+for+windows%22 + :alt: Build for Windows Supported Languages/Encodings ----------------------------- @@ -290,10 +296,11 @@ CHANGES ======= - 2.x.x - ----- - + 2.1.7 (2020-10-27) + ------------------ + - support Python 3.9 + - drop support for Python 3.5 2.1.6 (2020-03-17) ------------------ @@ -415,7 +422,7 @@ Classifier: Programming Language :: Python Classifier: Topic :: Software Development :: Libraries Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cchardet-2.1.6/README.rst new/cchardet-2.1.7/README.rst --- old/cchardet-2.1.6/README.rst 2020-03-16 15:40:14.000000000 +0100 +++ new/cchardet-2.1.7/README.rst 2020-10-27 08:27:23.000000000 +0100 @@ -6,12 +6,18 @@ .. image:: https://badge.fury.io/py/cchardet.svg :target: https://badge.fury.io/py/cchardet :alt: PyPI version -.. image:: https://travis-ci.org/PyYoshi/cChardet.svg?branch=master - :target: https://travis-ci.org/PyYoshi/cChardet - :alt: Travis Ci build status -.. image:: https://ci.appveyor.com/api/projects/status/lwkc4rgf3gncb1ne/branch/master?svg=true - :target: https://ci.appveyor.com/project/PyYoshi/cchardet/branch/master - :alt: AppVeyor build status + +.. image:: https://github.com/PyYoshi/cChardet/workflows/Build%20for%20Linux/badge.svg?branch=master + :target: https://github.com/PyYoshi/cChardet/actions?query=workflow%3A%22Build+for+Linux%22 + :alt: Build for Linux + +.. image:: https://github.com/PyYoshi/cChardet/workflows/Build%20for%20macOS/badge.svg?branch=master + :target: https://github.com/PyYoshi/cChardet/actions?query=workflow%3A%22Build+for+macOS%22 + :alt: Build for macOS + +.. image:: https://github.com/PyYoshi/cChardet/workflows/Build%20for%20windows/badge.svg?branch=master + :target: https://github.com/PyYoshi/cChardet/actions?query=workflow%3A%22Build+for+windows%22 + :alt: Build for Windows Supported Languages/Encodings ----------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cchardet-2.1.6/requirements-dev.txt new/cchardet-2.1.7/requirements-dev.txt --- old/cchardet-2.1.6/requirements-dev.txt 2020-03-16 16:08:33.000000000 +0100 +++ new/cchardet-2.1.7/requirements-dev.txt 2020-10-27 08:34:50.000000000 +0100 @@ -1,8 +1,8 @@ chardet==3.0.4 nose==1.3.7 -tox==3.14.5 -Cython==0.29.15 -# pylint==2.4.4 -# wheel==0.34.2 -# twine==3.1.1 -# autopep8==1.5 +tox==3.20.1 +Cython==0.29.21 +# pylint==2.6.0 +# wheel==0.35.1 +# twine==3.2.0 +# autopep8==1.5.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cchardet-2.1.6/setup.py new/cchardet-2.1.7/setup.py --- old/cchardet-2.1.6/setup.py 2020-03-16 15:41:17.000000000 +0100 +++ new/cchardet-2.1.7/setup.py 2020-10-27 09:08:51.000000000 +0100 @@ -129,10 +129,10 @@ 'Programming Language :: Python', 'Topic :: Software Development :: Libraries', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', ], keywords=[ 'cython', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cchardet-2.1.6/src/cchardet/_cchardet.cpp new/cchardet-2.1.7/src/cchardet/_cchardet.cpp --- old/cchardet-2.1.6/src/cchardet/_cchardet.cpp 2020-03-16 16:31:20.000000000 +0100 +++ new/cchardet-2.1.7/src/cchardet/_cchardet.cpp 2020-10-27 09:17:35.000000000 +0100 @@ -1,4 +1,4 @@ -/* Generated by Cython 0.29.14 */ +/* Generated by Cython 0.29.21 */ #define PY_SSIZE_T_CLEAN #include "Python.h" @@ -7,8 +7,8 @@ #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_14" -#define CYTHON_HEX_VERSION 0x001D0EF0 +#define CYTHON_ABI "0_29_21" +#define CYTHON_HEX_VERSION 0x001D15F0 #define CYTHON_FUTURE_DIVISION 1 #include <stddef.h> #ifndef offsetof @@ -449,7 +449,11 @@ #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 @@ -498,8 +502,10 @@ #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) @@ -510,6 +516,13 @@ #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 @@ -549,7 +562,7 @@ #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) + #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 @@ -590,11 +603,10 @@ #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_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ -} + { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } #ifndef __PYX_EXTERN_C #ifdef __cplusplus @@ -987,6 +999,17 @@ #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr #endif +/* PyErrExceptionMatches.proto */ +#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 + +/* PyObjectGetAttrStrNoError.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); + /* SetupReduce.proto */ static int __Pyx_setup_reduce(PyObject* type_obj); @@ -1160,6 +1183,9 @@ static PyObject *__pyx_pw_8cchardet_9_cchardet_1detect_with_confidence(PyObject *__pyx_self, PyObject *__pyx_v_msg); /*proto*/ static PyMethodDef __pyx_mdef_8cchardet_9_cchardet_1detect_with_confidence = {"detect_with_confidence", (PyCFunction)__pyx_pw_8cchardet_9_cchardet_1detect_with_confidence, METH_O, 0}; static PyObject *__pyx_pw_8cchardet_9_cchardet_1detect_with_confidence(PyObject *__pyx_self, PyObject *__pyx_v_msg) { + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("detect_with_confidence (wrapper)", 0); @@ -1188,6 +1214,9 @@ int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; __Pyx_RefNannySetupContext("detect_with_confidence", 0); /* "cchardet/_cchardet.pyx":15 @@ -1594,6 +1623,9 @@ /* Python wrapper */ static PyObject *__pyx_pw_8cchardet_9_cchardet_17UniversalDetector_5feed(PyObject *__pyx_v_self, PyObject *__pyx_v_msg); /*proto*/ static PyObject *__pyx_pw_8cchardet_9_cchardet_17UniversalDetector_5feed(PyObject *__pyx_v_self, PyObject *__pyx_v_msg) { + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("feed (wrapper)", 0); @@ -1618,6 +1650,9 @@ Py_ssize_t __pyx_t_2; const char* __pyx_t_3; PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; __Pyx_RefNannySetupContext("feed", 0); /* "cchardet/_cchardet.pyx":61 @@ -1839,6 +1874,9 @@ __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; __Pyx_RefNannySetupContext("close", 0); /* "cchardet/_cchardet.pyx":79 @@ -1958,6 +1996,9 @@ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "cchardet/_cchardet.pyx":89 @@ -2025,6 +2066,9 @@ Py_ssize_t __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); /* "cchardet/_cchardet.pyx":93 @@ -2131,6 +2175,9 @@ 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); /* "(tree fragment)":2 @@ -2185,6 +2232,9 @@ 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); /* "(tree fragment)":4 @@ -2515,6 +2565,9 @@ 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); /*--- Type init code ---*/ if (PyType_Ready(&__pyx_type_8cchardet_9_cchardet_UniversalDetector) < 0) __PYX_ERR(1, 35, __pyx_L1_error) @@ -2559,17 +2612,19 @@ } -#if PY_MAJOR_VERSION < 3 -#ifdef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC void -#else +#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 CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC PyObject * +#ifdef __cplusplus +#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * #else -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#define __Pyx_PyMODINIT_FUNC PyObject * #endif #endif @@ -2651,6 +2706,9 @@ #endif { PyObject *__pyx_t_1 = 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) { @@ -2739,14 +2797,14 @@ } #endif /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; + if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; + if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) /*--- Global type/function init code ---*/ (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)) goto __pyx_L1_error; + if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) (void)__Pyx_modinit_type_import_code(); (void)__Pyx_modinit_variable_import_code(); (void)__Pyx_modinit_function_import_code(); @@ -3187,6 +3245,53 @@ } #endif +/* PyErrExceptionMatches */ +#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 + +/* PyObjectGetAttrStrNoError */ +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; +} + /* SetupReduce */ static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { int ret; @@ -3214,43 +3319,51 @@ PyObject *setstate = NULL; PyObject *setstate_cython = NULL; #if CYTHON_USE_PYTYPE_LOOKUP - if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; + if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; #else - if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; + 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 BAD; + 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 BAD; + 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 BAD; + 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 BAD; + 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 BAD; + 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 BAD; + 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_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; + 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_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; + 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 GOOD; -BAD: + 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; -GOOD: +__PYX_GOOD: #if !CYTHON_USE_PYTYPE_LOOKUP Py_XDECREF(object_reduce); Py_XDECREF(object_reduce_ex); @@ -3291,7 +3404,7 @@ /* CLineInTraceback */ #ifndef CYTHON_CLINE_IN_TRACEBACK -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { +static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { PyObject *use_cline; PyObject *ptype, *pvalue, *ptraceback; #if CYTHON_COMPILING_IN_CPYTHON @@ -3395,7 +3508,7 @@ 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)); + __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cchardet-2.1.6/src/cchardet/version.py new/cchardet-2.1.7/src/cchardet/version.py --- old/cchardet-2.1.6/src/cchardet/version.py 2020-03-16 16:11:59.000000000 +0100 +++ new/cchardet-2.1.7/src/cchardet/version.py 2020-10-27 09:16:59.000000000 +0100 @@ -1 +1 @@ -__version__ = '2.1.6' +__version__ = '2.1.7' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cchardet-2.1.6/src/cchardet.egg-info/PKG-INFO new/cchardet-2.1.7/src/cchardet.egg-info/PKG-INFO --- old/cchardet-2.1.6/src/cchardet.egg-info/PKG-INFO 2020-03-16 16:31:20.000000000 +0100 +++ new/cchardet-2.1.7/src/cchardet.egg-info/PKG-INFO 2020-10-27 09:17:35.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: cchardet -Version: 2.1.6 +Version: 2.1.7 Summary: cChardet is high speed universal character encoding detector. Home-page: https://github.com/PyYoshi/cChardet Author: PyYoshi @@ -14,12 +14,18 @@ .. image:: https://badge.fury.io/py/cchardet.svg :target: https://badge.fury.io/py/cchardet :alt: PyPI version - .. image:: https://travis-ci.org/PyYoshi/cChardet.svg?branch=master - :target: https://travis-ci.org/PyYoshi/cChardet - :alt: Travis Ci build status - .. image:: https://ci.appveyor.com/api/projects/status/lwkc4rgf3gncb1ne/branch/master?svg=true - :target: https://ci.appveyor.com/project/PyYoshi/cchardet/branch/master - :alt: AppVeyor build status + + .. image:: https://github.com/PyYoshi/cChardet/workflows/Build%20for%20Linux/badge.svg?branch=master + :target: https://github.com/PyYoshi/cChardet/actions?query=workflow%3A%22Build+for+Linux%22 + :alt: Build for Linux + + .. image:: https://github.com/PyYoshi/cChardet/workflows/Build%20for%20macOS/badge.svg?branch=master + :target: https://github.com/PyYoshi/cChardet/actions?query=workflow%3A%22Build+for+macOS%22 + :alt: Build for macOS + + .. image:: https://github.com/PyYoshi/cChardet/workflows/Build%20for%20windows/badge.svg?branch=master + :target: https://github.com/PyYoshi/cChardet/actions?query=workflow%3A%22Build+for+windows%22 + :alt: Build for Windows Supported Languages/Encodings ----------------------------- @@ -290,10 +296,11 @@ CHANGES ======= - 2.x.x - ----- - + 2.1.7 (2020-10-27) + ------------------ + - support Python 3.9 + - drop support for Python 3.5 2.1.6 (2020-03-17) ------------------ @@ -415,7 +422,7 @@ Classifier: Programming Language :: Python Classifier: Topic :: Software Development :: Libraries Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9