[Python-modules-commits] [python-multidict] 01/03: Import python-multidict_2.0.1.orig.tar.gz

Piotr Ożarowski piotr at moszumanska.debian.org
Thu Aug 4 19:38:49 UTC 2016


This is an automated email from the git hooks/post-receive script.

piotr pushed a commit to branch master
in repository python-multidict.

commit 150fbed7fcec2821404d3de91e23104ba56f5481
Author: Piotr Ożarowski <piotr at debian.org>
Date:   Thu Aug 4 21:12:25 2016 +0200

    Import python-multidict_2.0.1.orig.tar.gz
---
 CHANGES.rst                 |   11 +
 PKG-INFO                    |   13 +-
 multidict.egg-info/PKG-INFO |   13 +-
 multidict/__init__.py       |    2 +-
 multidict/_multidict.c      | 1171 +++++++++++++++++++++++++++----------------
 multidict/_multidict.pyx    |   36 +-
 setup.py                    |    5 +-
 tests/test_multidict.py     |   16 +
 8 files changed, 816 insertions(+), 451 deletions(-)

diff --git a/CHANGES.rst b/CHANGES.rst
index b9b2058..d22b4e2 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -1,3 +1,9 @@
+2.0.1 (2016-08-02)
+------------------
+
+* Don't crash on `{} - MultiDict().keys()` and similar operations #6
+
+
 2.0.0 (2016-07-28)
 ------------------
 
@@ -6,6 +12,11 @@
 
 * Deprecase `upstr` class in favor of `istr` alias.
 
+1.2.2 (2016-08-02)
+------------------
+
+* Don't crash on `{} - MultiDict().keys()` and similar operations #6
+
 1.2.1 (2016-07-21)
 ------------------
 
diff --git a/PKG-INFO b/PKG-INFO
index cfb86c2..2e022c5 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: multidict
-Version: 2.0.0
+Version: 2.0.1
 Summary: multidict implementation
 Home-page: https://github.com/aio-libs/multidict/
 Author: Andrew Svetlov
@@ -56,6 +56,12 @@ Description: =========
         
         Apache 2
         
+        2.0.1 (2016-08-02)
+        ------------------
+        
+        * Don't crash on `{} - MultiDict().keys()` and similar operations #6
+        
+        
         2.0.0 (2016-07-28)
         ------------------
         
@@ -64,6 +70,11 @@ Description: =========
         
         * Deprecase `upstr` class in favor of `istr` alias.
         
+        1.2.2 (2016-08-02)
+        ------------------
+        
+        * Don't crash on `{} - MultiDict().keys()` and similar operations #6
+        
         1.2.1 (2016-07-21)
         ------------------
         
diff --git a/multidict.egg-info/PKG-INFO b/multidict.egg-info/PKG-INFO
index cfb86c2..2e022c5 100644
--- a/multidict.egg-info/PKG-INFO
+++ b/multidict.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: multidict
-Version: 2.0.0
+Version: 2.0.1
 Summary: multidict implementation
 Home-page: https://github.com/aio-libs/multidict/
 Author: Andrew Svetlov
@@ -56,6 +56,12 @@ Description: =========
         
         Apache 2
         
+        2.0.1 (2016-08-02)
+        ------------------
+        
+        * Don't crash on `{} - MultiDict().keys()` and similar operations #6
+        
+        
         2.0.0 (2016-07-28)
         ------------------
         
@@ -64,6 +70,11 @@ Description: =========
         
         * Deprecase `upstr` class in favor of `istr` alias.
         
+        1.2.2 (2016-08-02)
+        ------------------
+        
+        * Don't crash on `{} - MultiDict().keys()` and similar operations #6
+        
         1.2.1 (2016-07-21)
         ------------------
         
diff --git a/multidict/__init__.py b/multidict/__init__.py
index 9ed7160..6e8481c 100644
--- a/multidict/__init__.py
+++ b/multidict/__init__.py
@@ -10,7 +10,7 @@ import os
 __all__ = ('MultiDictProxy', 'CIMultiDictProxy',
            'MultiDict', 'CIMultiDict', 'upstr', 'istr')
 
-__version__ = '2.0.0'
+__version__ = '2.0.1'
 
 
 if bool(os.environ.get('MULTIDICT_NO_EXTENSIONS')):
diff --git a/multidict/_multidict.c b/multidict/_multidict.c
index ab4f288..47d4c1c 100644
--- a/multidict/_multidict.c
+++ b/multidict/_multidict.c
@@ -1,8 +1,9 @@
-/* Generated by Cython 0.24 */
+/* Generated by Cython 0.24.1 */
 
 /* BEGIN: Cython Metadata
 {
-    "distutils": {}
+    "distutils": {},
+    "module_name": "multidict._multidict"
 }
 END: Cython Metadata */
 
@@ -13,7 +14,7 @@ END: Cython Metadata */
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000)
     #error Cython requires Python 2.6+ or Python 3.2+.
 #else
-#define CYTHON_ABI "0_24"
+#define CYTHON_ABI "0_24_1"
 #include <stddef.h>
 #ifndef offsetof
   #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
@@ -116,6 +117,9 @@ END: Cython Metadata */
 #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
@@ -241,6 +245,11 @@ static CYTHON_INLINE float __PYX_NAN() {
   return value;
 }
 #endif
+#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
+#define __Pyx_truncl trunc
+#else
+#define __Pyx_truncl truncl
+#endif
 
 
 #define __PYX_ERR(f_index, lineno, Ln_error) \
@@ -608,7 +617,7 @@ struct __pyx_obj_9multidict_10_multidict__ViewBaseSet {
 };
 
 
-/* "multidict/_multidict.pyx":505
+/* "multidict/_multidict.pyx":521
  * 
  * 
  * cdef class _ItemsIter:             # <<<<<<<<<<<<<<
@@ -623,7 +632,7 @@ struct __pyx_obj_9multidict_10_multidict__ItemsIter {
 };
 
 
-/* "multidict/_multidict.pyx":526
+/* "multidict/_multidict.pyx":542
  * 
  * 
  * cdef class _ItemsView(_ViewBaseSet):             # <<<<<<<<<<<<<<
@@ -635,7 +644,7 @@ struct __pyx_obj_9multidict_10_multidict__ItemsView {
 };
 
 
-/* "multidict/_multidict.pyx":561
+/* "multidict/_multidict.pyx":577
  * 
  * 
  * cdef class _ValuesIter:             # <<<<<<<<<<<<<<
@@ -650,7 +659,7 @@ struct __pyx_obj_9multidict_10_multidict__ValuesIter {
 };
 
 
-/* "multidict/_multidict.pyx":582
+/* "multidict/_multidict.pyx":598
  * 
  * 
  * cdef class _ValuesView(_ViewBase):             # <<<<<<<<<<<<<<
@@ -662,7 +671,7 @@ struct __pyx_obj_9multidict_10_multidict__ValuesView {
 };
 
 
-/* "multidict/_multidict.pyx":608
+/* "multidict/_multidict.pyx":624
  * 
  * 
  * cdef class _KeysIter:             # <<<<<<<<<<<<<<
@@ -677,7 +686,7 @@ struct __pyx_obj_9multidict_10_multidict__KeysIter {
 };
 
 
-/* "multidict/_multidict.pyx":629
+/* "multidict/_multidict.pyx":645
  * 
  * 
  * cdef class _KeysView(_ViewBaseSet):             # <<<<<<<<<<<<<<
@@ -1315,7 +1324,7 @@ static const char __pyx_k_empty_multidict[] = "empty multidict";
 static const char __pyx_k_getdefaultencoding[] = "getdefaultencoding";
 static const char __pyx_k_Case_insensitive_str[] = "Case insensitive str.";
 static const char __pyx_k_multidict__multidict[] = "multidict._multidict";
-static const char __pyx_k_home_andrew_projects_multidict[] = "/home/andrew/projects/multidict/multidict/_multidict.pyx";
+static const char __pyx_k_home_travis_build_aio_libs_mult[] = "/home/travis/build/aio-libs/multidict/multidict/_multidict.pyx";
 static const char __pyx_k_takes_at_most_1_positional_argu[] = "{} takes at most 1 positional argument ({} given)";
 static const char __pyx_k_takes_either_dict_or_list_of_ke[] = "{} takes either dict or list of (key, value) tuples";
 static const char __pyx_k_CIMultiDictProxy_requires_CIMult[] = "CIMultiDictProxy requires CIMultiDict instance, not {}";
@@ -1355,7 +1364,7 @@ static PyObject *__pyx_n_s_extend;
 static PyObject *__pyx_n_s_format;
 static PyObject *__pyx_n_s_get;
 static PyObject *__pyx_n_s_getdefaultencoding;
-static PyObject *__pyx_kp_s_home_andrew_projects_multidict;
+static PyObject *__pyx_kp_s_home_travis_build_aio_libs_mult;
 static PyObject *__pyx_n_s_import;
 static PyObject *__pyx_n_s_is_istr;
 static PyObject *__pyx_n_s_istr;
@@ -9103,6 +9112,7 @@ static PyObject *__pyx_pf_9multidict_10_multidict_12_ViewBaseSet_2__and__(PyObje
   int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   __Pyx_RefNannySetupContext("__and__", 0);
+  __Pyx_INCREF(__pyx_v_self);
   __Pyx_INCREF(__pyx_v_other);
 
   /* "multidict/_multidict.pyx":477
@@ -9110,7 +9120,7 @@ static PyObject *__pyx_pf_9multidict_10_multidict_12_ViewBaseSet_2__and__(PyObje
  *     def __and__(self, other):
  *         if not isinstance(other, Iterable):             # <<<<<<<<<<<<<<
  *             return NotImplemented
- *         if not isinstance(other, Set):
+ *         if isinstance(self, _ViewBaseSet):
  */
   __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Iterable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 477, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
@@ -9123,8 +9133,8 @@ static PyObject *__pyx_pf_9multidict_10_multidict_12_ViewBaseSet_2__and__(PyObje
  *     def __and__(self, other):
  *         if not isinstance(other, Iterable):
  *             return NotImplemented             # <<<<<<<<<<<<<<
- *         if not isinstance(other, Set):
- *             other = set(other)
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))
  */
     __Pyx_XDECREF(__pyx_r);
     __Pyx_INCREF(__pyx_builtin_NotImplemented);
@@ -9136,58 +9146,128 @@ static PyObject *__pyx_pf_9multidict_10_multidict_12_ViewBaseSet_2__and__(PyObje
  *     def __and__(self, other):
  *         if not isinstance(other, Iterable):             # <<<<<<<<<<<<<<
  *             return NotImplemented
- *         if not isinstance(other, Set):
+ *         if isinstance(self, _ViewBaseSet):
  */
   }
 
   /* "multidict/_multidict.pyx":479
  *         if not isinstance(other, Iterable):
  *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):
+ */
+  __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_9multidict_10_multidict__ViewBaseSet); 
+  __pyx_t_2 = (__pyx_t_3 != 0);
+  if (__pyx_t_2) {
+
+    /* "multidict/_multidict.pyx":480
+ *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))             # <<<<<<<<<<<<<<
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))
+ */
+    __pyx_t_1 = PyObject_GetIter(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 480, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_1);
+    __pyx_t_4 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 480, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+    __Pyx_DECREF_SET(__pyx_v_self, __pyx_t_4);
+    __pyx_t_4 = 0;
+
+    /* "multidict/_multidict.pyx":479
+ *         if not isinstance(other, Iterable):
+ *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):
+ */
+  }
+
+  /* "multidict/_multidict.pyx":481
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             other = set(iter(other))
+ *         if not isinstance(other, Set):
+ */
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_9multidict_10_multidict__ViewBaseSet); 
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
+
+    /* "multidict/_multidict.pyx":482
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))             # <<<<<<<<<<<<<<
+ *         if not isinstance(other, Set):
+ *             other = set(iter(other))
+ */
+    __pyx_t_4 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 482, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_1 = PySet_New(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 482, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_1);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
+    __pyx_t_1 = 0;
+
+    /* "multidict/_multidict.pyx":481
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             other = set(iter(other))
+ *         if not isinstance(other, Set):
+ */
+  }
+
+  /* "multidict/_multidict.pyx":483
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))
  *         if not isinstance(other, Set):             # <<<<<<<<<<<<<<
- *             other = set(other)
- *         return set(self) & other
+ *             other = set(iter(other))
+ *         return self & other
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 479, __pyx_L1_error)
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 483, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 479, __pyx_L1_error)
+  __pyx_t_3 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 483, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0);
   if (__pyx_t_2) {
 
-    /* "multidict/_multidict.pyx":480
- *             return NotImplemented
+    /* "multidict/_multidict.pyx":484
+ *             other = set(iter(other))
  *         if not isinstance(other, Set):
- *             other = set(other)             # <<<<<<<<<<<<<<
- *         return set(self) & other
+ *             other = set(iter(other))             # <<<<<<<<<<<<<<
+ *         return self & other
  * 
  */
-    __pyx_t_1 = PySet_New(__pyx_v_other); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 480, __pyx_L1_error)
+    __pyx_t_1 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 484, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
-    __pyx_t_1 = 0;
+    __pyx_t_4 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 484, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+    __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_4);
+    __pyx_t_4 = 0;
 
-    /* "multidict/_multidict.pyx":479
- *         if not isinstance(other, Iterable):
- *             return NotImplemented
+    /* "multidict/_multidict.pyx":483
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))
  *         if not isinstance(other, Set):             # <<<<<<<<<<<<<<
- *             other = set(other)
- *         return set(self) & other
+ *             other = set(iter(other))
+ *         return self & other
  */
   }
 
-  /* "multidict/_multidict.pyx":481
+  /* "multidict/_multidict.pyx":485
  *         if not isinstance(other, Set):
- *             other = set(other)
- *         return set(self) & other             # <<<<<<<<<<<<<<
+ *             other = set(iter(other))
+ *         return self & other             # <<<<<<<<<<<<<<
  * 
  *     def __or__(self, other):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PySet_New(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 481, __pyx_L1_error)
-  __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_4 = PyNumber_And(__pyx_t_1, __pyx_v_other); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 481, __pyx_L1_error)
+  __pyx_t_4 = PyNumber_And(__pyx_v_self, __pyx_v_other); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 485, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_4;
   __pyx_t_4 = 0;
   goto __pyx_L0;
@@ -9207,14 +9287,15 @@ static PyObject *__pyx_pf_9multidict_10_multidict_12_ViewBaseSet_2__and__(PyObje
   __Pyx_AddTraceback("multidict._multidict._ViewBaseSet.__and__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
+  __Pyx_XDECREF(__pyx_v_self);
   __Pyx_XDECREF(__pyx_v_other);
   __Pyx_XGIVEREF(__pyx_r);
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
 }
 
-/* "multidict/_multidict.pyx":483
- *         return set(self) & other
+/* "multidict/_multidict.pyx":487
+ *         return self & other
  * 
  *     def __or__(self, other):             # <<<<<<<<<<<<<<
  *         if not isinstance(other, Iterable):
@@ -9242,97 +9323,168 @@ static PyObject *__pyx_pf_9multidict_10_multidict_12_ViewBaseSet_4__or__(PyObjec
   int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   __Pyx_RefNannySetupContext("__or__", 0);
+  __Pyx_INCREF(__pyx_v_self);
   __Pyx_INCREF(__pyx_v_other);
 
-  /* "multidict/_multidict.pyx":484
+  /* "multidict/_multidict.pyx":488
  * 
  *     def __or__(self, other):
  *         if not isinstance(other, Iterable):             # <<<<<<<<<<<<<<
  *             return NotImplemented
- *         if not isinstance(other, Set):
+ *         if isinstance(self, _ViewBaseSet):
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Iterable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 484, __pyx_L1_error)
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Iterable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 488, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 484, __pyx_L1_error)
+  __pyx_t_2 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 488, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
   if (__pyx_t_3) {
 
-    /* "multidict/_multidict.pyx":485
+    /* "multidict/_multidict.pyx":489
  *     def __or__(self, other):
  *         if not isinstance(other, Iterable):
  *             return NotImplemented             # <<<<<<<<<<<<<<
- *         if not isinstance(other, Set):
- *             other = set(other)
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))
  */
     __Pyx_XDECREF(__pyx_r);
     __Pyx_INCREF(__pyx_builtin_NotImplemented);
     __pyx_r = __pyx_builtin_NotImplemented;
     goto __pyx_L0;
 
-    /* "multidict/_multidict.pyx":484
+    /* "multidict/_multidict.pyx":488
  * 
  *     def __or__(self, other):
  *         if not isinstance(other, Iterable):             # <<<<<<<<<<<<<<
  *             return NotImplemented
- *         if not isinstance(other, Set):
+ *         if isinstance(self, _ViewBaseSet):
  */
   }
 
-  /* "multidict/_multidict.pyx":486
+  /* "multidict/_multidict.pyx":490
  *         if not isinstance(other, Iterable):
  *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):
+ */
+  __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_9multidict_10_multidict__ViewBaseSet); 
+  __pyx_t_2 = (__pyx_t_3 != 0);
+  if (__pyx_t_2) {
+
+    /* "multidict/_multidict.pyx":491
+ *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))             # <<<<<<<<<<<<<<
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))
+ */
+    __pyx_t_1 = PyObject_GetIter(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 491, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_1);
+    __pyx_t_4 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 491, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+    __Pyx_DECREF_SET(__pyx_v_self, __pyx_t_4);
+    __pyx_t_4 = 0;
+
+    /* "multidict/_multidict.pyx":490
+ *         if not isinstance(other, Iterable):
+ *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):
+ */
+  }
+
+  /* "multidict/_multidict.pyx":492
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             other = set(iter(other))
+ *         if not isinstance(other, Set):
+ */
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_9multidict_10_multidict__ViewBaseSet); 
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
+
+    /* "multidict/_multidict.pyx":493
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))             # <<<<<<<<<<<<<<
+ *         if not isinstance(other, Set):
+ *             other = set(iter(other))
+ */
+    __pyx_t_4 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 493, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_1 = PySet_New(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 493, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_1);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
+    __pyx_t_1 = 0;
+
+    /* "multidict/_multidict.pyx":492
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             other = set(iter(other))
+ *         if not isinstance(other, Set):
+ */
+  }
+
+  /* "multidict/_multidict.pyx":494
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))
  *         if not isinstance(other, Set):             # <<<<<<<<<<<<<<
- *             other = set(other)
- *         return set(self) | other
+ *             other = set(iter(other))
+ *         return self | other
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 486, __pyx_L1_error)
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 494, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 486, __pyx_L1_error)
+  __pyx_t_3 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 494, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0);
   if (__pyx_t_2) {
 
-    /* "multidict/_multidict.pyx":487
- *             return NotImplemented
+    /* "multidict/_multidict.pyx":495
+ *             other = set(iter(other))
  *         if not isinstance(other, Set):
- *             other = set(other)             # <<<<<<<<<<<<<<
- *         return set(self) | other
+ *             other = set(iter(other))             # <<<<<<<<<<<<<<
+ *         return self | other
  * 
  */
-    __pyx_t_1 = PySet_New(__pyx_v_other); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 487, __pyx_L1_error)
+    __pyx_t_1 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 495, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
-    __pyx_t_1 = 0;
+    __pyx_t_4 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 495, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+    __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_4);
+    __pyx_t_4 = 0;
 
-    /* "multidict/_multidict.pyx":486
- *         if not isinstance(other, Iterable):
- *             return NotImplemented
+    /* "multidict/_multidict.pyx":494
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))
  *         if not isinstance(other, Set):             # <<<<<<<<<<<<<<
- *             other = set(other)
- *         return set(self) | other
+ *             other = set(iter(other))
+ *         return self | other
  */
   }
 
-  /* "multidict/_multidict.pyx":488
+  /* "multidict/_multidict.pyx":496
  *         if not isinstance(other, Set):
- *             other = set(other)
- *         return set(self) | other             # <<<<<<<<<<<<<<
+ *             other = set(iter(other))
+ *         return self | other             # <<<<<<<<<<<<<<
  * 
  *     def __sub__(self, other):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PySet_New(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 488, __pyx_L1_error)
-  __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_4 = PyNumber_Or(__pyx_t_1, __pyx_v_other); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 488, __pyx_L1_error)
+  __pyx_t_4 = PyNumber_Or(__pyx_v_self, __pyx_v_other); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 496, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_4;
   __pyx_t_4 = 0;
   goto __pyx_L0;
 
-  /* "multidict/_multidict.pyx":483
- *         return set(self) & other
+  /* "multidict/_multidict.pyx":487
+ *         return self & other
  * 
  *     def __or__(self, other):             # <<<<<<<<<<<<<<
  *         if not isinstance(other, Iterable):
@@ -9346,14 +9498,15 @@ static PyObject *__pyx_pf_9multidict_10_multidict_12_ViewBaseSet_4__or__(PyObjec
   __Pyx_AddTraceback("multidict._multidict._ViewBaseSet.__or__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
+  __Pyx_XDECREF(__pyx_v_self);
   __Pyx_XDECREF(__pyx_v_other);
   __Pyx_XGIVEREF(__pyx_r);
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
 }
 
-/* "multidict/_multidict.pyx":490
- *         return set(self) | other
+/* "multidict/_multidict.pyx":498
+ *         return self | other
  * 
  *     def __sub__(self, other):             # <<<<<<<<<<<<<<
  *         if not isinstance(other, Iterable):
@@ -9381,97 +9534,168 @@ static PyObject *__pyx_pf_9multidict_10_multidict_12_ViewBaseSet_6__sub__(PyObje
   int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   __Pyx_RefNannySetupContext("__sub__", 0);
+  __Pyx_INCREF(__pyx_v_self);
   __Pyx_INCREF(__pyx_v_other);
 
-  /* "multidict/_multidict.pyx":491
+  /* "multidict/_multidict.pyx":499
  * 
  *     def __sub__(self, other):
  *         if not isinstance(other, Iterable):             # <<<<<<<<<<<<<<
  *             return NotImplemented
- *         if not isinstance(other, Set):
+ *         if isinstance(self, _ViewBaseSet):
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Iterable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 491, __pyx_L1_error)
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Iterable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 499, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 491, __pyx_L1_error)
+  __pyx_t_2 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 499, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
   if (__pyx_t_3) {
 
-    /* "multidict/_multidict.pyx":492
+    /* "multidict/_multidict.pyx":500
  *     def __sub__(self, other):
  *         if not isinstance(other, Iterable):
  *             return NotImplemented             # <<<<<<<<<<<<<<
- *         if not isinstance(other, Set):
- *             other = set(other)
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))
  */
     __Pyx_XDECREF(__pyx_r);
     __Pyx_INCREF(__pyx_builtin_NotImplemented);
     __pyx_r = __pyx_builtin_NotImplemented;
     goto __pyx_L0;
 
-    /* "multidict/_multidict.pyx":491
+    /* "multidict/_multidict.pyx":499
  * 
  *     def __sub__(self, other):
  *         if not isinstance(other, Iterable):             # <<<<<<<<<<<<<<
  *             return NotImplemented
- *         if not isinstance(other, Set):
+ *         if isinstance(self, _ViewBaseSet):
  */
   }
 
-  /* "multidict/_multidict.pyx":493
+  /* "multidict/_multidict.pyx":501
+ *         if not isinstance(other, Iterable):
+ *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):
+ */
+  __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_9multidict_10_multidict__ViewBaseSet); 
+  __pyx_t_2 = (__pyx_t_3 != 0);
+  if (__pyx_t_2) {
+
+    /* "multidict/_multidict.pyx":502
+ *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))             # <<<<<<<<<<<<<<
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))
+ */
+    __pyx_t_1 = PyObject_GetIter(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 502, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_1);
+    __pyx_t_4 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 502, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+    __Pyx_DECREF_SET(__pyx_v_self, __pyx_t_4);
+    __pyx_t_4 = 0;
+
+    /* "multidict/_multidict.pyx":501
  *         if not isinstance(other, Iterable):
  *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):
+ */
+  }
+
+  /* "multidict/_multidict.pyx":503
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             other = set(iter(other))
+ *         if not isinstance(other, Set):
+ */
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_9multidict_10_multidict__ViewBaseSet); 
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
+
+    /* "multidict/_multidict.pyx":504
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))             # <<<<<<<<<<<<<<
+ *         if not isinstance(other, Set):
+ *             other = set(iter(other))
+ */
+    __pyx_t_4 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 504, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_1 = PySet_New(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 504, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_1);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
+    __pyx_t_1 = 0;
+
+    /* "multidict/_multidict.pyx":503
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             other = set(iter(other))
+ *         if not isinstance(other, Set):
+ */
+  }
+
+  /* "multidict/_multidict.pyx":505
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))
  *         if not isinstance(other, Set):             # <<<<<<<<<<<<<<
- *             other = set(other)
- *         return set(self) - other
+ *             other = set(iter(other))
+ *         return self - other
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 493, __pyx_L1_error)
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 505, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 493, __pyx_L1_error)
+  __pyx_t_3 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 505, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0);
   if (__pyx_t_2) {
 
-    /* "multidict/_multidict.pyx":494
- *             return NotImplemented
+    /* "multidict/_multidict.pyx":506
+ *             other = set(iter(other))
  *         if not isinstance(other, Set):
- *             other = set(other)             # <<<<<<<<<<<<<<
- *         return set(self) - other
+ *             other = set(iter(other))             # <<<<<<<<<<<<<<
+ *         return self - other
  * 
  */
-    __pyx_t_1 = PySet_New(__pyx_v_other); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 494, __pyx_L1_error)
+    __pyx_t_1 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 506, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
-    __pyx_t_1 = 0;
+    __pyx_t_4 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 506, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+    __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_4);
+    __pyx_t_4 = 0;
 
-    /* "multidict/_multidict.pyx":493
- *         if not isinstance(other, Iterable):
- *             return NotImplemented
+    /* "multidict/_multidict.pyx":505
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))
  *         if not isinstance(other, Set):             # <<<<<<<<<<<<<<
- *             other = set(other)
- *         return set(self) - other
+ *             other = set(iter(other))
+ *         return self - other
  */
   }
 
-  /* "multidict/_multidict.pyx":495
+  /* "multidict/_multidict.pyx":507
  *         if not isinstance(other, Set):
- *             other = set(other)
- *         return set(self) - other             # <<<<<<<<<<<<<<
+ *             other = set(iter(other))
+ *         return self - other             # <<<<<<<<<<<<<<
  * 
  *     def __xor__(self, other):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PySet_New(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 495, __pyx_L1_error)
-  __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_v_other); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 495, __pyx_L1_error)
+  __pyx_t_4 = PyNumber_Subtract(__pyx_v_self, __pyx_v_other); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 507, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_4;
   __pyx_t_4 = 0;
   goto __pyx_L0;
 
-  /* "multidict/_multidict.pyx":490
- *         return set(self) | other
+  /* "multidict/_multidict.pyx":498
+ *         return self | other
  * 
  *     def __sub__(self, other):             # <<<<<<<<<<<<<<
  *         if not isinstance(other, Iterable):
@@ -9485,18 +9709,19 @@ static PyObject *__pyx_pf_9multidict_10_multidict_12_ViewBaseSet_6__sub__(PyObje
   __Pyx_AddTraceback("multidict._multidict._ViewBaseSet.__sub__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
+  __Pyx_XDECREF(__pyx_v_self);
   __Pyx_XDECREF(__pyx_v_other);
   __Pyx_XGIVEREF(__pyx_r);
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
 }
 
-/* "multidict/_multidict.pyx":497
- *         return set(self) - other
+/* "multidict/_multidict.pyx":509
+ *         return self - other
  * 
  *     def __xor__(self, other):             # <<<<<<<<<<<<<<
- *         if not isinstance(other, Set):
- *             if not isinstance(other, Iterable):
+ *         if not isinstance(other, Iterable):
+ *             return NotImplemented
  */
 
 /* Python wrapper */
@@ -9520,101 +9745,172 @@ static PyObject *__pyx_pf_9multidict_10_multidict_12_ViewBaseSet_8__xor__(PyObje
   int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   __Pyx_RefNannySetupContext("__xor__", 0);
+  __Pyx_INCREF(__pyx_v_self);
   __Pyx_INCREF(__pyx_v_other);
 
-  /* "multidict/_multidict.pyx":498
+  /* "multidict/_multidict.pyx":510
  * 
  *     def __xor__(self, other):
- *         if not isinstance(other, Set):             # <<<<<<<<<<<<<<
- *             if not isinstance(other, Iterable):
- *                 return NotImplemented
+ *         if not isinstance(other, Iterable):             # <<<<<<<<<<<<<<
+ *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 498, __pyx_L1_error)
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Iterable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 510, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 498, __pyx_L1_error)
+  __pyx_t_2 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 510, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
   if (__pyx_t_3) {
 
-    /* "multidict/_multidict.pyx":499
+    /* "multidict/_multidict.pyx":511
  *     def __xor__(self, other):
- *         if not isinstance(other, Set):
- *             if not isinstance(other, Iterable):             # <<<<<<<<<<<<<<
- *                 return NotImplemented
- *             other = set(other)
+ *         if not isinstance(other, Iterable):
+ *             return NotImplemented             # <<<<<<<<<<<<<<
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))
+ */
+    __Pyx_XDECREF(__pyx_r);
+    __Pyx_INCREF(__pyx_builtin_NotImplemented);
+    __pyx_r = __pyx_builtin_NotImplemented;
+    goto __pyx_L0;
+
+    /* "multidict/_multidict.pyx":510
+ * 
+ *     def __xor__(self, other):
+ *         if not isinstance(other, Iterable):             # <<<<<<<<<<<<<<
+ *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):
  */
-    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Iterable); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 499, __pyx_L1_error)
+  }
+
+  /* "multidict/_multidict.pyx":512
+ *         if not isinstance(other, Iterable):
+ *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):
+ */
+  __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_9multidict_10_multidict__ViewBaseSet); 
+  __pyx_t_2 = (__pyx_t_3 != 0);
+  if (__pyx_t_2) {
+
+    /* "multidict/_multidict.pyx":513
+ *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):
+ *             self = set(iter(self))             # <<<<<<<<<<<<<<
+ *         if isinstance(other, _ViewBaseSet):
+ *             other = set(iter(other))
+ */
+    __pyx_t_1 = PyObject_GetIter(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 513, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_3 = PyObject_IsInstance(__pyx_v_other, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) __PYX_ERR(0, 499, __pyx_L1_error)
+    __pyx_t_4 = PySet_New(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 513, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0);
-    if (__pyx_t_2) {
+    __Pyx_DECREF_SET(__pyx_v_self, __pyx_t_4);
+    __pyx_t_4 = 0;
 
-      /* "multidict/_multidict.pyx":500
- *         if not isinstance(other, Set):
- *             if not isinstance(other, Iterable):
- *                 return NotImplemented             # <<<<<<<<<<<<<<
- *             other = set(other)
- *         return set(self) ^ other
+    /* "multidict/_multidict.pyx":512
+ *         if not isinstance(other, Iterable):
+ *             return NotImplemented
+ *         if isinstance(self, _ViewBaseSet):             # <<<<<<<<<<<<<<
+ *             self = set(iter(self))
+ *         if isinstance(other, _ViewBaseSet):
  */
-      __Pyx_XDECREF(__pyx_r);
-      __Pyx_INCREF(__pyx_builtin_NotImplemented);
-      __pyx_r = __pyx_builtin_NotImplemented;
-      goto __pyx_L0;
+  }
 
-      /* "multidict/_multidict.pyx":499
... 2200 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-multidict.git



More information about the Python-modules-commits mailing list