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 <[email protected]>
+
+- 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