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

Piotr Ożarowski piotr at moszumanska.debian.org
Sat Jul 30 14:41:28 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 45771f29c7bb2e3173dc7dc17692f07798d861c0
Author: Piotr Ożarowski <piotr at debian.org>
Date:   Sat Jul 30 16:35:17 2016 +0200

    Import python-multidict_2.0.0.orig.tar.gz
---
 CHANGES.rst                    |    8 +
 PKG-INFO                       |   18 +-
 README.rst                     |    8 +-
 docs/index.rst                 |    8 +-
 docs/multidict.rst             |   37 +-
 multidict.egg-info/PKG-INFO    |   18 +-
 multidict.egg-info/SOURCES.txt |    1 -
 multidict/__init__.py          |   10 +-
 multidict/_multidict.c         | 2715 ++++++++++++++++++++--------------------
 multidict/_multidict.pyx       |   57 +-
 multidict/_multidict_py.py     |   35 +-
 tests/test_multidict.py        |   72 +-
 12 files changed, 1522 insertions(+), 1465 deletions(-)

diff --git a/CHANGES.rst b/CHANGES.rst
index f1d24cb..b9b2058 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -1,3 +1,11 @@
+2.0.0 (2016-07-28)
+------------------
+
+* Switch from uppercase approach for case-insensitive string to
+  `str.title()` #5
+
+* Deprecase `upstr` class in favor of `istr` alias.
+
 1.2.1 (2016-07-21)
 ------------------
 
diff --git a/PKG-INFO b/PKG-INFO
index bf69433..cfb86c2 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: multidict
-Version: 1.2.1
+Version: 2.0.0
 Summary: multidict implementation
 Home-page: https://github.com/aio-libs/multidict/
 Author: Andrew Svetlov
@@ -40,13 +40,13 @@ Description: =========
         ``CIMultiDictProxy``) ones assumes the *keys* are case
         insensitive, e.g.::
         
-           >>> dct = CIMultiDict(a='val')
-           >>> 'A' in dct
+           >>> dct = CIMultiDict(key='val')
+           >>> 'Key' in dct
            True
-           >>> dct['A']
+           >>> dct['Key']
            'val'
         
-        *Keys* should be ``str`` instances.
+        *Keys* should be ``str`` or ``istr`` instances.
         
         The library has optional Cython optimization for sake of speed.
         
@@ -56,6 +56,14 @@ Description: =========
         
         Apache 2
         
+        2.0.0 (2016-07-28)
+        ------------------
+        
+        * Switch from uppercase approach for case-insensitive string to
+          `str.title()` #5
+        
+        * Deprecase `upstr` class in favor of `istr` alias.
+        
         1.2.1 (2016-07-21)
         ------------------
         
diff --git a/README.rst b/README.rst
index ed98553..fdbc544 100644
--- a/README.rst
+++ b/README.rst
@@ -32,13 +32,13 @@ their own content.
 ``CIMultiDictProxy``) ones assumes the *keys* are case
 insensitive, e.g.::
 
-   >>> dct = CIMultiDict(a='val')
-   >>> 'A' in dct
+   >>> dct = CIMultiDict(key='val')
+   >>> 'Key' in dct
    True
-   >>> dct['A']
+   >>> dct['Key']
    'val'
 
-*Keys* should be ``str`` instances.
+*Keys* should be ``str`` or ``istr`` instances.
 
 The library has optional Cython optimization for sake of speed.
 
diff --git a/docs/index.rst b/docs/index.rst
index 2ea0e10..4a5554b 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -36,13 +36,13 @@ their own content.
 :class:`CIMultiDictProxy`) ones assumes the *keys* are case
 insensitive, e.g.::
 
-   >>> dct = CIMultiDict(a='val')
-   >>> 'A' in dct
+   >>> dct = CIMultiDict(key='val')
+   >>> 'Key' in dct
    True
-   >>> dct['A']
+   >>> dct['Key']
    'val'
 
-*Keys* should be a :class:`str`.
+*Keys* should be either :class:`str` or :class:`istr` instance.
 
 The library has optional Cython optimization for sake of speed.
 
diff --git a/docs/multidict.rst b/docs/multidict.rst
index 8596199..8996239 100644
--- a/docs/multidict.rst
+++ b/docs/multidict.rst
@@ -300,33 +300,38 @@ CIMultiDictProxy
    The class is inherited from :class:`MultiDict`.
 
 
-upstr
-=====
+istr
+====
 
 :class:`CIMultiDict` accepts :class:`str` as *key* argument for dict
-lookups but converts it to upper case internally.
+lookups but converts it to title case internally.
 
-For more effective processing it should know if the *key* is already upper cased.
+Title case means every word in key will be capitalized,
+e.g. ``istr('content-length')`` internally will be converted to
+``'Content-Length'``.
 
-To skip the :meth:`~str.upper()` call you may want to create upper cased strings by
-hand, e.g::
+For more effective processing it should know if the *key* is already
+title cased.
 
-   >>> key = upstr('Key')
+To skip the :meth:`~str.title()` call you may want to create title
+cased strings by hands, e.g::
+
+   >>> key = istr('Key')
    >>> key
-   'KEY'
+   'Key'
    >>> mdict = CIMultiDict(key='value')
    >>> key in mdict
    True
    >>> mdict[key]
    'value'
 
-For performance you should create :class:`upstr` strings once and
+For performance you should create :class:`istr` strings once and
 store them globally, like :mod:`aiohttp.hdrs` does.
 
-.. class:: upstr(object='')
-           upstr(bytes_or_buffer[, encoding[, errors]])
+.. class:: istr(object='')
+           istr(bytes_or_buffer[, encoding[, errors]])
 
-      Create a new **upper cased** string object from the given
+      Create a new **title cased** string object from the given
       *object*. If *encoding* or *errors* are specified, then the
       object must expose a data buffer that will be decoded using the
       given encoding and error handler.
@@ -340,3 +345,11 @@ store them globally, like :mod:`aiohttp.hdrs` does.
 
       The class is inherited from :class:`str` and has all regular
       string methods.
+
+.. versionchanged:: 2.0
+
+   ``upstr`` has renamed to ``istr`` with keeping ``upstr`` alias.
+
+   The behavior remains the same with the only exception:
+   ``repr('Content-Length')`` and ``str('Content-Length')`` now
+   returns ``'Content-Length'`` instead of ``'CONTENT-LENGTH'``.
diff --git a/multidict.egg-info/PKG-INFO b/multidict.egg-info/PKG-INFO
index bf69433..cfb86c2 100644
--- a/multidict.egg-info/PKG-INFO
+++ b/multidict.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: multidict
-Version: 1.2.1
+Version: 2.0.0
 Summary: multidict implementation
 Home-page: https://github.com/aio-libs/multidict/
 Author: Andrew Svetlov
@@ -40,13 +40,13 @@ Description: =========
         ``CIMultiDictProxy``) ones assumes the *keys* are case
         insensitive, e.g.::
         
-           >>> dct = CIMultiDict(a='val')
-           >>> 'A' in dct
+           >>> dct = CIMultiDict(key='val')
+           >>> 'Key' in dct
            True
-           >>> dct['A']
+           >>> dct['Key']
            'val'
         
-        *Keys* should be ``str`` instances.
+        *Keys* should be ``str`` or ``istr`` instances.
         
         The library has optional Cython optimization for sake of speed.
         
@@ -56,6 +56,14 @@ Description: =========
         
         Apache 2
         
+        2.0.0 (2016-07-28)
+        ------------------
+        
+        * Switch from uppercase approach for case-insensitive string to
+          `str.title()` #5
+        
+        * Deprecase `upstr` class in favor of `istr` alias.
+        
         1.2.1 (2016-07-21)
         ------------------
         
diff --git a/multidict.egg-info/SOURCES.txt b/multidict.egg-info/SOURCES.txt
index 84be1ac..7e0b8a3 100644
--- a/multidict.egg-info/SOURCES.txt
+++ b/multidict.egg-info/SOURCES.txt
@@ -2,7 +2,6 @@ CHANGES.rst
 MANIFEST.in
 Makefile
 README.rst
-setup.cfg
 setup.py
 docs/Makefile
 docs/conf.py
diff --git a/multidict/__init__.py b/multidict/__init__.py
index 47c0a50..9ed7160 100644
--- a/multidict/__init__.py
+++ b/multidict/__init__.py
@@ -8,9 +8,9 @@ several values for the same key.
 import os
 
 __all__ = ('MultiDictProxy', 'CIMultiDictProxy',
-           'MultiDict', 'CIMultiDict', 'upstr')
+           'MultiDict', 'CIMultiDict', 'upstr', 'istr')
 
-__version__ = '1.2.1'
+__version__ = '2.0.0'
 
 
 if bool(os.environ.get('MULTIDICT_NO_EXTENSIONS')):
@@ -18,17 +18,17 @@ if bool(os.environ.get('MULTIDICT_NO_EXTENSIONS')):
                                 CIMultiDictProxy,
                                 MultiDict,
                                 CIMultiDict,
-                                upstr)
+                                upstr, istr)
 else:
     try:
         from ._multidict import (MultiDictProxy,
                                  CIMultiDictProxy,
                                  MultiDict,
                                  CIMultiDict,
-                                 upstr)
+                                 upstr, istr)
     except ImportError:  # pragma: no cover
         from ._multidict_py import (MultiDictProxy,
                                     CIMultiDictProxy,
                                     MultiDict,
                                     CIMultiDict,
-                                    upstr)
+                                    upstr, istr)
diff --git a/multidict/_multidict.c b/multidict/_multidict.c
index f983e97..ab4f288 100644
--- a/multidict/_multidict.c
+++ b/multidict/_multidict.c
@@ -505,7 +505,7 @@ struct __pyx_defaults {
   PyObject *__pyx_arg_encoding;
 };
 
-/* "multidict/_multidict.pyx":52
+/* "multidict/_multidict.pyx":55
  * 
  * 
  * cdef class _Pair:             # <<<<<<<<<<<<<<
@@ -519,7 +519,7 @@ struct __pyx_obj_9multidict_10_multidict__Pair {
 };
 
 
-/* "multidict/_multidict.pyx":71
+/* "multidict/_multidict.pyx":74
  *             return left._key != right._key and left._value != right._value
  * 
  * cdef class _Base:             # <<<<<<<<<<<<<<
@@ -535,7 +535,7 @@ struct __pyx_obj_9multidict_10_multidict__Base {
 };
 
 
-/* "multidict/_multidict.pyx":199
+/* "multidict/_multidict.pyx":202
  * 
  * 
  * cdef class MultiDictProxy(_Base):             # <<<<<<<<<<<<<<
@@ -547,7 +547,7 @@ struct __pyx_obj_9multidict_10_multidict_MultiDictProxy {
 };
 
 
-/* "multidict/_multidict.pyx":218
+/* "multidict/_multidict.pyx":221
  * 
  * 
  * cdef class CIMultiDictProxy(MultiDictProxy):             # <<<<<<<<<<<<<<
@@ -559,7 +559,7 @@ struct __pyx_obj_9multidict_10_multidict_CIMultiDictProxy {
 };
 
 
-/* "multidict/_multidict.pyx":243
+/* "multidict/_multidict.pyx":246
  * 
  * 
  * cdef class MultiDict(_Base):             # <<<<<<<<<<<<<<
@@ -571,7 +571,7 @@ struct __pyx_obj_9multidict_10_multidict_MultiDict {
 };
 
 
-/* "multidict/_multidict.pyx":413
+/* "multidict/_multidict.pyx":416
  * 
  * 
  * cdef class CIMultiDict(MultiDict):             # <<<<<<<<<<<<<<
@@ -583,7 +583,7 @@ struct __pyx_obj_9multidict_10_multidict_CIMultiDict {
 };
 
 
-/* "multidict/_multidict.pyx":426
+/* "multidict/_multidict.pyx":429
  * 
  * 
  * cdef class _ViewBase:             # <<<<<<<<<<<<<<
@@ -596,7 +596,7 @@ struct __pyx_obj_9multidict_10_multidict__ViewBase {
 };
 
 
-/* "multidict/_multidict.pyx":437
+/* "multidict/_multidict.pyx":440
  * 
  * 
  * cdef class _ViewBaseSet(_ViewBase):             # <<<<<<<<<<<<<<
@@ -608,7 +608,7 @@ struct __pyx_obj_9multidict_10_multidict__ViewBaseSet {
 };
 
 
-/* "multidict/_multidict.pyx":502
+/* "multidict/_multidict.pyx":505
  * 
  * 
  * cdef class _ItemsIter:             # <<<<<<<<<<<<<<
@@ -623,7 +623,7 @@ struct __pyx_obj_9multidict_10_multidict__ItemsIter {
 };
 
 
-/* "multidict/_multidict.pyx":523
+/* "multidict/_multidict.pyx":526
  * 
  * 
  * cdef class _ItemsView(_ViewBaseSet):             # <<<<<<<<<<<<<<
@@ -635,7 +635,7 @@ struct __pyx_obj_9multidict_10_multidict__ItemsView {
 };
 
 
-/* "multidict/_multidict.pyx":558
+/* "multidict/_multidict.pyx":561
  * 
  * 
  * cdef class _ValuesIter:             # <<<<<<<<<<<<<<
@@ -650,7 +650,7 @@ struct __pyx_obj_9multidict_10_multidict__ValuesIter {
 };
 
 
-/* "multidict/_multidict.pyx":579
+/* "multidict/_multidict.pyx":582
  * 
  * 
  * cdef class _ValuesView(_ViewBase):             # <<<<<<<<<<<<<<
@@ -662,7 +662,7 @@ struct __pyx_obj_9multidict_10_multidict__ValuesView {
 };
 
 
-/* "multidict/_multidict.pyx":605
+/* "multidict/_multidict.pyx":608
  * 
  * 
  * cdef class _KeysIter:             # <<<<<<<<<<<<<<
@@ -677,7 +677,7 @@ struct __pyx_obj_9multidict_10_multidict__KeysIter {
 };
 
 
-/* "multidict/_multidict.pyx":626
+/* "multidict/_multidict.pyx":629
  * 
  * 
  * cdef class _KeysView(_ViewBaseSet):             # <<<<<<<<<<<<<<
@@ -690,7 +690,7 @@ struct __pyx_obj_9multidict_10_multidict__KeysView {
 
 
 
-/* "multidict/_multidict.pyx":71
+/* "multidict/_multidict.pyx":74
  *             return left._key != right._key and left._value != right._value
  * 
  * cdef class _Base:             # <<<<<<<<<<<<<<
@@ -699,7 +699,7 @@ struct __pyx_obj_9multidict_10_multidict__KeysView {
  */
 
 struct __pyx_vtabstruct_9multidict_10_multidict__Base {
-  PyObject *(*_upper)(struct __pyx_obj_9multidict_10_multidict__Base *, PyObject *);
+  PyObject *(*_title)(struct __pyx_obj_9multidict_10_multidict__Base *, PyObject *);
   PyObject *(*_getall)(struct __pyx_obj_9multidict_10_multidict__Base *, PyObject *, PyObject *);
   PyObject *(*_getone)(struct __pyx_obj_9multidict_10_multidict__Base *, PyObject *, PyObject *);
   PyObject *(*_contains)(struct __pyx_obj_9multidict_10_multidict__Base *, PyObject *);
@@ -709,7 +709,7 @@ struct __pyx_vtabstruct_9multidict_10_multidict__Base {
 static struct __pyx_vtabstruct_9multidict_10_multidict__Base *__pyx_vtabptr_9multidict_10_multidict__Base;
 
 
-/* "multidict/_multidict.pyx":199
+/* "multidict/_multidict.pyx":202
  * 
  * 
  * cdef class MultiDictProxy(_Base):             # <<<<<<<<<<<<<<
@@ -723,7 +723,7 @@ struct __pyx_vtabstruct_9multidict_10_multidict_MultiDictProxy {
 static struct __pyx_vtabstruct_9multidict_10_multidict_MultiDictProxy *__pyx_vtabptr_9multidict_10_multidict_MultiDictProxy;
 
 
-/* "multidict/_multidict.pyx":218
+/* "multidict/_multidict.pyx":221
  * 
  * 
  * cdef class CIMultiDictProxy(MultiDictProxy):             # <<<<<<<<<<<<<<
@@ -737,7 +737,7 @@ struct __pyx_vtabstruct_9multidict_10_multidict_CIMultiDictProxy {
 static struct __pyx_vtabstruct_9multidict_10_multidict_CIMultiDictProxy *__pyx_vtabptr_9multidict_10_multidict_CIMultiDictProxy;
 
 
-/* "multidict/_multidict.pyx":243
+/* "multidict/_multidict.pyx":246
  * 
  * 
  * cdef class MultiDict(_Base):             # <<<<<<<<<<<<<<
@@ -755,7 +755,7 @@ struct __pyx_vtabstruct_9multidict_10_multidict_MultiDict {
 static struct __pyx_vtabstruct_9multidict_10_multidict_MultiDict *__pyx_vtabptr_9multidict_10_multidict_MultiDict;
 
 
-/* "multidict/_multidict.pyx":413
+/* "multidict/_multidict.pyx":416
  * 
  * 
  * cdef class CIMultiDict(MultiDict):             # <<<<<<<<<<<<<<
@@ -1203,18 +1203,18 @@ static int __Pyx_check_binary_version(void);
 /* InitStrings.proto */
 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
 
-static PyObject *__pyx_f_9multidict_10_multidict_5_Base__upper(struct __pyx_obj_9multidict_10_multidict__Base *__pyx_v_self, PyObject *__pyx_v_s); /* proto*/
+static PyObject *__pyx_f_9multidict_10_multidict_5_Base__title(struct __pyx_obj_9multidict_10_multidict__Base *__pyx_v_self, PyObject *__pyx_v_s); /* proto*/
 static PyObject *__pyx_f_9multidict_10_multidict_5_Base__getall(struct __pyx_obj_9multidict_10_multidict__Base *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_default); /* proto*/
 static PyObject *__pyx_f_9multidict_10_multidict_5_Base__getone(struct __pyx_obj_9multidict_10_multidict__Base *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_default); /* proto*/
 static PyObject *__pyx_f_9multidict_10_multidict_5_Base__contains(struct __pyx_obj_9multidict_10_multidict__Base *__pyx_v_self, PyObject *__pyx_v_key); /* proto*/
 static PyObject *__pyx_f_9multidict_10_multidict_5_Base_keys(struct __pyx_obj_9multidict_10_multidict__Base *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
 static PyObject *__pyx_f_9multidict_10_multidict_5_Base__eq_to_mapping(struct __pyx_obj_9multidict_10_multidict__Base *__pyx_v_self, PyObject *__pyx_v_other); /* proto*/
-static PyObject *__pyx_f_9multidict_10_multidict_16CIMultiDictProxy__upper(struct __pyx_obj_9multidict_10_multidict_CIMultiDictProxy *__pyx_v_self, PyObject *__pyx_v_s); /* proto*/
+static PyObject *__pyx_f_9multidict_10_multidict_16CIMultiDictProxy__title(struct __pyx_obj_9multidict_10_multidict_CIMultiDictProxy *__pyx_v_self, PyObject *__pyx_v_s); /* proto*/
 static PyObject *__pyx_f_9multidict_10_multidict_9MultiDict__extend(struct __pyx_obj_9multidict_10_multidict_MultiDict *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, PyObject *__pyx_v_name, int __pyx_v_do_add); /* proto*/
 static PyObject *__pyx_f_9multidict_10_multidict_9MultiDict__add(struct __pyx_obj_9multidict_10_multidict_MultiDict *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /* proto*/
 static PyObject *__pyx_f_9multidict_10_multidict_9MultiDict__replace(struct __pyx_obj_9multidict_10_multidict_MultiDict *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /* proto*/
 static PyObject *__pyx_f_9multidict_10_multidict_9MultiDict__remove(struct __pyx_obj_9multidict_10_multidict_MultiDict *__pyx_v_self, PyObject *__pyx_v_key, int __pyx_v_raise_key_error); /* proto*/
-static PyObject *__pyx_f_9multidict_10_multidict_11CIMultiDict__upper(struct __pyx_obj_9multidict_10_multidict_CIMultiDict *__pyx_v_self, PyObject *__pyx_v_s); /* proto*/
+static PyObject *__pyx_f_9multidict_10_multidict_11CIMultiDict__title(struct __pyx_obj_9multidict_10_multidict_CIMultiDict *__pyx_v_self, PyObject *__pyx_v_s); /* proto*/
 
 /* Module declarations from 'multidict._multidict' */
 static PyTypeObject *__pyx_ptype_9multidict_10_multidict__Pair = 0;
@@ -1262,6 +1262,7 @@ static const char __pyx_k_r_r[] = "{!r}: {!r}";
 static const char __pyx_k_ret[] = "ret";
 static const char __pyx_k_sys[] = "sys";
 static const char __pyx_k_val[] = "val";
+static const char __pyx_k_istr[] = "istr";
 static const char __pyx_k_join[] = "join";
 static const char __pyx_k_keys[] = "keys";
 static const char __pyx_k_main[] = "__main__";
@@ -1272,7 +1273,7 @@ static const char __pyx_k_class[] = "__class__";
 static const char __pyx_k_clear[] = "clear";
 static const char __pyx_k_items[] = "items";
 static const char __pyx_k_range[] = "range";
-static const char __pyx_k_upper[] = "upper";
+static const char __pyx_k_title[] = "title";
 static const char __pyx_k_upstr[] = "upstr";
 static const char __pyx_k_value[] = "value";
 static const char __pyx_k_errors[] = "errors";
@@ -1286,12 +1287,12 @@ static const char __pyx_k_strict[] = "strict";
 static const char __pyx_k_update[] = "update";
 static const char __pyx_k_Mapping[] = "Mapping";
 static const char __pyx_k_default[] = "default";
+static const char __pyx_k_is_istr[] = "__is_istr__";
 static const char __pyx_k_prepare[] = "__prepare__";
 static const char __pyx_k_Iterable[] = "Iterable";
 static const char __pyx_k_KeyError[] = "KeyError";
 static const char __pyx_k_KeysView[] = "KeysView";
 static const char __pyx_k_encoding[] = "encoding";
-static const char __pyx_k_is_upstr[] = "__is_upstr__";
 static const char __pyx_k_operator[] = "operator";
 static const char __pyx_k_qualname[] = "__qualname__";
 static const char __pyx_k_register[] = "register";
@@ -1299,12 +1300,12 @@ static const char __pyx_k_ItemsView[] = "ItemsView";
 static const char __pyx_k_TypeError[] = "TypeError";
 static const char __pyx_k_metaclass[] = "__metaclass__";
 static const char __pyx_k_ValuesView[] = "ValuesView";
+static const char __pyx_k_istr___new[] = "istr.__new__";
+static const char __pyx_k_istr_title[] = "istr.title";
 static const char __pyx_k_itemgetter[] = "itemgetter";
 static const char __pyx_k_memoryview[] = "memoryview";
 static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
 static const char __pyx_k_collections[] = "collections";
-static const char __pyx_k_upstr___new[] = "upstr.__new__";
-static const char __pyx_k_upstr_upper[] = "upstr.upper";
 static const char __pyx_k_StopIteration[] = "StopIteration";
 static const char __pyx_k_MutableMapping[] = "MutableMapping";
 static const char __pyx_k_NotImplemented[] = "NotImplemented";
@@ -1356,7 +1357,10 @@ static PyObject *__pyx_n_s_get;
 static PyObject *__pyx_n_s_getdefaultencoding;
 static PyObject *__pyx_kp_s_home_andrew_projects_multidict;
 static PyObject *__pyx_n_s_import;
-static PyObject *__pyx_n_s_is_upstr;
+static PyObject *__pyx_n_s_is_istr;
+static PyObject *__pyx_n_s_istr;
+static PyObject *__pyx_n_s_istr___new;
+static PyObject *__pyx_n_s_istr_title;
 static PyObject *__pyx_n_s_itemgetter;
 static PyObject *__pyx_n_s_items;
 static PyObject *__pyx_n_s_join;
@@ -1388,16 +1392,14 @@ static PyObject *__pyx_n_s_sys;
 static PyObject *__pyx_kp_s_takes_at_most_1_positional_argu;
 static PyObject *__pyx_kp_s_takes_either_dict_or_list_of_ke;
 static PyObject *__pyx_n_s_test;
+static PyObject *__pyx_n_s_title;
 static PyObject *__pyx_n_s_update;
-static PyObject *__pyx_n_s_upper;
 static PyObject *__pyx_n_s_upstr;
-static PyObject *__pyx_n_s_upstr___new;
-static PyObject *__pyx_n_s_upstr_upper;
 static PyObject *__pyx_n_s_val;
 static PyObject *__pyx_n_s_value;
-static PyObject *__pyx_pf_9multidict_10_multidict_5upstr_4__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
-static PyObject *__pyx_pf_9multidict_10_multidict_5upstr___new__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_val, PyObject *__pyx_v_encoding, PyObject *__pyx_v_errors); /* proto */
-static PyObject *__pyx_pf_9multidict_10_multidict_5upstr_2upper(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_9multidict_10_multidict_4istr_4__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
+static PyObject *__pyx_pf_9multidict_10_multidict_4istr___new__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_val, PyObject *__pyx_v_encoding, PyObject *__pyx_v_errors); /* proto */
+static PyObject *__pyx_pf_9multidict_10_multidict_4istr_2title(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
 static int __pyx_pf_9multidict_10_multidict_5_Pair___cinit__(struct __pyx_obj_9multidict_10_multidict__Pair *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /* proto */
 static PyObject *__pyx_pf_9multidict_10_multidict_5_Pair_2__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, PyObject *__pyx_v_op); /* proto */
 static int __pyx_pf_9multidict_10_multidict_5_Base___cinit__(struct __pyx_obj_9multidict_10_multidict__Base *__pyx_v_self); /* proto */
@@ -1486,14 +1488,14 @@ static PyObject *__pyx_codeobj__10;
 static PyObject *__pyx_codeobj__12;
 
 /* "multidict/_multidict.pyx":16
- *     __is_upstr__ = True
+ *     __is_istr__ = True
  * 
  *     def __new__(cls, val='',             # <<<<<<<<<<<<<<
  *                 encoding=sys.getdefaultencoding(), errors='strict'):
- *         if getattr(val, '__is_upstr__', False):
+ *         if getattr(val, '__is_istr__', False):
  */
 
-static PyObject *__pyx_pf_9multidict_10_multidict_5upstr_4__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
+static PyObject *__pyx_pf_9multidict_10_multidict_4istr_4__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
@@ -1527,7 +1529,7 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr_4__defaults__(CYTHON_UN
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_AddTraceback("multidict._multidict.upstr.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_AddTraceback("multidict._multidict.istr.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
   __Pyx_XGIVEREF(__pyx_r);
@@ -1536,9 +1538,9 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr_4__defaults__(CYTHON_UN
 }
 
 /* Python wrapper */
-static PyObject *__pyx_pw_9multidict_10_multidict_5upstr_1__new__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static PyMethodDef __pyx_mdef_9multidict_10_multidict_5upstr_1__new__ = {"__new__", (PyCFunction)__pyx_pw_9multidict_10_multidict_5upstr_1__new__, METH_VARARGS|METH_KEYWORDS, 0};
-static PyObject *__pyx_pw_9multidict_10_multidict_5upstr_1__new__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+static PyObject *__pyx_pw_9multidict_10_multidict_4istr_1__new__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyMethodDef __pyx_mdef_9multidict_10_multidict_4istr_1__new__ = {"__new__", (PyCFunction)__pyx_pw_9multidict_10_multidict_4istr_1__new__, METH_VARARGS|METH_KEYWORDS, 0};
+static PyObject *__pyx_pw_9multidict_10_multidict_4istr_1__new__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   PyObject *__pyx_v_cls = 0;
   PyObject *__pyx_v_val = 0;
   PyObject *__pyx_v_encoding = 0;
@@ -1607,18 +1609,18 @@ static PyObject *__pyx_pw_9multidict_10_multidict_5upstr_1__new__(PyObject *__py
   __pyx_L5_argtuple_error:;
   __Pyx_RaiseArgtupleInvalid("__new__", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16, __pyx_L3_error)
   __pyx_L3_error:;
-  __Pyx_AddTraceback("multidict._multidict.upstr.__new__", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_AddTraceback("multidict._multidict.istr.__new__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  __pyx_r = __pyx_pf_9multidict_10_multidict_5upstr___new__(__pyx_self, __pyx_v_cls, __pyx_v_val, __pyx_v_encoding, __pyx_v_errors);
+  __pyx_r = __pyx_pf_9multidict_10_multidict_4istr___new__(__pyx_self, __pyx_v_cls, __pyx_v_val, __pyx_v_encoding, __pyx_v_errors);
 
   /* function exit code */
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
 }
 
-static PyObject *__pyx_pf_9multidict_10_multidict_5upstr___new__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_val, PyObject *__pyx_v_encoding, PyObject *__pyx_v_errors) {
+static PyObject *__pyx_pf_9multidict_10_multidict_4istr___new__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_cls, PyObject *__pyx_v_val, PyObject *__pyx_v_encoding, PyObject *__pyx_v_errors) {
   PyObject *__pyx_v_ret = NULL;
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
@@ -1637,18 +1639,18 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr___new__(CYTHON_UNUSED P
   /* "multidict/_multidict.pyx":18
  *     def __new__(cls, val='',
  *                 encoding=sys.getdefaultencoding(), errors='strict'):
- *         if getattr(val, '__is_upstr__', False):             # <<<<<<<<<<<<<<
+ *         if getattr(val, '__is_istr__', False):             # <<<<<<<<<<<<<<
  *             # Faster than instance check
  *             return val
  */
-  __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_val, __pyx_n_s_is_upstr, Py_False); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error)
+  __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_val, __pyx_n_s_is_istr, Py_False); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 18, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_2) {
 
     /* "multidict/_multidict.pyx":20
- *         if getattr(val, '__is_upstr__', False):
+ *         if getattr(val, '__is_istr__', False):
  *             # Faster than instance check
  *             return val             # <<<<<<<<<<<<<<
  *         if isinstance(val, (bytes, bytearray, memoryview)):
@@ -1662,7 +1664,7 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr___new__(CYTHON_UNUSED P
     /* "multidict/_multidict.pyx":18
  *     def __new__(cls, val='',
  *                 encoding=sys.getdefaultencoding(), errors='strict'):
- *         if getattr(val, '__is_upstr__', False):             # <<<<<<<<<<<<<<
+ *         if getattr(val, '__is_istr__', False):             # <<<<<<<<<<<<<<
  *             # Faster than instance check
  *             return val
  */
@@ -1750,7 +1752,7 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr___new__(CYTHON_UNUSED P
  *             pass
  *         else:
  *             val = str(val)             # <<<<<<<<<<<<<<
- *         ret = str.__new__(cls, val.upper())
+ *         ret = str.__new__(cls, val.title())
  *         return ret
  */
   /*else*/ {
@@ -1770,13 +1772,13 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr___new__(CYTHON_UNUSED P
   /* "multidict/_multidict.pyx":27
  *         else:
  *             val = str(val)
- *         ret = str.__new__(cls, val.upper())             # <<<<<<<<<<<<<<
+ *         ret = str.__new__(cls, val.title())             # <<<<<<<<<<<<<<
  *         return ret
  * 
  */
   __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)(&PyString_Type)), __pyx_n_s_new); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 27, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_val, __pyx_n_s_upper); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 27, __pyx_L1_error)
+  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_val, __pyx_n_s_title); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 27, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_7);
   __pyx_t_8 = NULL;
   if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
@@ -1828,10 +1830,10 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr___new__(CYTHON_UNUSED P
 
   /* "multidict/_multidict.pyx":28
  *             val = str(val)
- *         ret = str.__new__(cls, val.upper())
+ *         ret = str.__new__(cls, val.title())
  *         return ret             # <<<<<<<<<<<<<<
  * 
- *     def upper(self):
+ *     def title(self):
  */
   __Pyx_XDECREF(__pyx_r);
   __Pyx_INCREF(__pyx_v_ret);
@@ -1839,11 +1841,11 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr___new__(CYTHON_UNUSED P
   goto __pyx_L0;
 
   /* "multidict/_multidict.pyx":16
- *     __is_upstr__ = True
+ *     __is_istr__ = True
  * 
  *     def __new__(cls, val='',             # <<<<<<<<<<<<<<
  *                 encoding=sys.getdefaultencoding(), errors='strict'):
- *         if getattr(val, '__is_upstr__', False):
+ *         if getattr(val, '__is_istr__', False):
  */
 
   /* function exit code */
@@ -1853,7 +1855,7 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr___new__(CYTHON_UNUSED P
   __Pyx_XDECREF(__pyx_t_6);
   __Pyx_XDECREF(__pyx_t_7);
   __Pyx_XDECREF(__pyx_t_8);
-  __Pyx_AddTraceback("multidict._multidict.upstr.__new__", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_AddTraceback("multidict._multidict.istr.__new__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
   __Pyx_XDECREF(__pyx_v_ret);
@@ -1866,33 +1868,33 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr___new__(CYTHON_UNUSED P
 /* "multidict/_multidict.pyx":30
  *         return ret
  * 
- *     def upper(self):             # <<<<<<<<<<<<<<
+ *     def title(self):             # <<<<<<<<<<<<<<
  *         return self
  * 
  */
 
 /* Python wrapper */
-static PyObject *__pyx_pw_9multidict_10_multidict_5upstr_3upper(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
-static PyMethodDef __pyx_mdef_9multidict_10_multidict_5upstr_3upper = {"upper", (PyCFunction)__pyx_pw_9multidict_10_multidict_5upstr_3upper, METH_O, 0};
-static PyObject *__pyx_pw_9multidict_10_multidict_5upstr_3upper(PyObject *__pyx_self, PyObject *__pyx_v_self) {
+static PyObject *__pyx_pw_9multidict_10_multidict_4istr_3title(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
+static PyMethodDef __pyx_mdef_9multidict_10_multidict_4istr_3title = {"title", (PyCFunction)__pyx_pw_9multidict_10_multidict_4istr_3title, METH_O, 0};
+static PyObject *__pyx_pw_9multidict_10_multidict_4istr_3title(PyObject *__pyx_self, PyObject *__pyx_v_self) {
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
-  __Pyx_RefNannySetupContext("upper (wrapper)", 0);
-  __pyx_r = __pyx_pf_9multidict_10_multidict_5upstr_2upper(__pyx_self, ((PyObject *)__pyx_v_self));
+  __Pyx_RefNannySetupContext("title (wrapper)", 0);
+  __pyx_r = __pyx_pf_9multidict_10_multidict_4istr_2title(__pyx_self, ((PyObject *)__pyx_v_self));
 
   /* function exit code */
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
 }
 
-static PyObject *__pyx_pf_9multidict_10_multidict_5upstr_2upper(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
+static PyObject *__pyx_pf_9multidict_10_multidict_4istr_2title(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
-  __Pyx_RefNannySetupContext("upper", 0);
+  __Pyx_RefNannySetupContext("title", 0);
 
   /* "multidict/_multidict.pyx":31
  * 
- *     def upper(self):
+ *     def title(self):
  *         return self             # <<<<<<<<<<<<<<
  * 
  * 
@@ -1905,7 +1907,7 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr_2upper(CYTHON_UNUSED Py
   /* "multidict/_multidict.pyx":30
  *         return ret
  * 
- *     def upper(self):             # <<<<<<<<<<<<<<
+ *     def title(self):             # <<<<<<<<<<<<<<
  *         return self
  * 
  */
@@ -1917,7 +1919,7 @@ static PyObject *__pyx_pf_9multidict_10_multidict_5upstr_2upper(CYTHON_UNUSED Py
   return __pyx_r;
 }
 
-/* "multidict/_multidict.pyx":34
+/* "multidict/_multidict.pyx":37
  * 
  * 
  * cdef _eq(self, other):             # <<<<<<<<<<<<<<
@@ -1937,7 +1939,7 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
   int __pyx_t_5;
   __Pyx_RefNannySetupContext("_eq", 0);
 
-  /* "multidict/_multidict.pyx":39
+  /* "multidict/_multidict.pyx":42
  *     cdef int is_left_base, is_right_base
  * 
  *     is_left_base = isinstance(self, _Base)             # <<<<<<<<<<<<<<
@@ -1947,7 +1949,7 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_9multidict_10_multidict__Base); 
   __pyx_v_is_left_base = __pyx_t_1;
 
-  /* "multidict/_multidict.pyx":40
+  /* "multidict/_multidict.pyx":43
  * 
  *     is_left_base = isinstance(self, _Base)
  *     is_right_base = isinstance(other, _Base)             # <<<<<<<<<<<<<<
@@ -1957,7 +1959,7 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_9multidict_10_multidict__Base); 
   __pyx_v_is_right_base = __pyx_t_1;
 
-  /* "multidict/_multidict.pyx":42
+  /* "multidict/_multidict.pyx":45
  *     is_right_base = isinstance(other, _Base)
  * 
  *     if is_left_base and is_right_base:             # <<<<<<<<<<<<<<
@@ -1975,7 +1977,7 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
   __pyx_L4_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "multidict/_multidict.pyx":43
+    /* "multidict/_multidict.pyx":46
  * 
  *     if is_left_base and is_right_base:
  *         return (<_Base>self)._items == (<_Base>other)._items             # <<<<<<<<<<<<<<
@@ -1983,12 +1985,12 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
  *         return (<_Base>self)._eq_to_mapping(other)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = PyObject_RichCompare(((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_self)->_items, ((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_other)->_items, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 43, __pyx_L1_error)
+    __pyx_t_3 = PyObject_RichCompare(((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_self)->_items, ((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_other)->_items, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 46, __pyx_L1_error)
     __pyx_r = __pyx_t_3;
     __pyx_t_3 = 0;
     goto __pyx_L0;
 
-    /* "multidict/_multidict.pyx":42
+    /* "multidict/_multidict.pyx":45
  *     is_right_base = isinstance(other, _Base)
  * 
  *     if is_left_base and is_right_base:             # <<<<<<<<<<<<<<
@@ -1997,7 +1999,7 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
  */
   }
 
-  /* "multidict/_multidict.pyx":44
+  /* "multidict/_multidict.pyx":47
  *     if is_left_base and is_right_base:
  *         return (<_Base>self)._items == (<_Base>other)._items
  *     elif is_left_base and isinstance(other, abc.Mapping):             # <<<<<<<<<<<<<<
@@ -2010,19 +2012,19 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
     __pyx_t_1 = __pyx_t_2;
     goto __pyx_L6_bool_binop_done;
   }
-  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_abc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 44, __pyx_L1_error)
+  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_abc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_Mapping); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 44, __pyx_L1_error)
+  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_Mapping); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __pyx_t_2 = PyObject_IsInstance(__pyx_v_other, __pyx_t_4); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 44, __pyx_L1_error)
+  __pyx_t_2 = PyObject_IsInstance(__pyx_v_other, __pyx_t_4); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 47, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   __pyx_t_5 = (__pyx_t_2 != 0);
   __pyx_t_1 = __pyx_t_5;
   __pyx_L6_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "multidict/_multidict.pyx":45
+    /* "multidict/_multidict.pyx":48
  *         return (<_Base>self)._items == (<_Base>other)._items
  *     elif is_left_base and isinstance(other, abc.Mapping):
  *         return (<_Base>self)._eq_to_mapping(other)             # <<<<<<<<<<<<<<
@@ -2030,13 +2032,13 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
  *         return (<_Base>other)._eq_to_mapping(self)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = ((struct __pyx_vtabstruct_9multidict_10_multidict__Base *)((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_self)->__pyx_vtab)->_eq_to_mapping(((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_self), __pyx_v_other); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 45, __pyx_L1_error)
+    __pyx_t_4 = ((struct __pyx_vtabstruct_9multidict_10_multidict__Base *)((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_self)->__pyx_vtab)->_eq_to_mapping(((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_self), __pyx_v_other); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 48, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_r = __pyx_t_4;
     __pyx_t_4 = 0;
     goto __pyx_L0;
 
-    /* "multidict/_multidict.pyx":44
+    /* "multidict/_multidict.pyx":47
  *     if is_left_base and is_right_base:
  *         return (<_Base>self)._items == (<_Base>other)._items
  *     elif is_left_base and isinstance(other, abc.Mapping):             # <<<<<<<<<<<<<<
@@ -2045,7 +2047,7 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
  */
   }
 
-  /* "multidict/_multidict.pyx":46
+  /* "multidict/_multidict.pyx":49
  *     elif is_left_base and isinstance(other, abc.Mapping):
  *         return (<_Base>self)._eq_to_mapping(other)
  *     elif is_right_base and isinstance(self, abc.Mapping):             # <<<<<<<<<<<<<<
@@ -2058,19 +2060,19 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
     __pyx_t_1 = __pyx_t_5;
     goto __pyx_L8_bool_binop_done;
   }
-  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_abc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 46, __pyx_L1_error)
+  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_abc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 49, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_Mapping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 46, __pyx_L1_error)
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_Mapping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 49, __pyx_L1_error)
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_5 = PyObject_IsInstance(__pyx_v_self, __pyx_t_3); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 46, __pyx_L1_error)
+  __pyx_t_5 = PyObject_IsInstance(__pyx_v_self, __pyx_t_3); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 49, __pyx_L1_error)
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_t_2 = (__pyx_t_5 != 0);
   __pyx_t_1 = __pyx_t_2;
   __pyx_L8_bool_binop_done:;
   if (__pyx_t_1) {
 
-    /* "multidict/_multidict.pyx":47
+    /* "multidict/_multidict.pyx":50
  *         return (<_Base>self)._eq_to_mapping(other)
  *     elif is_right_base and isinstance(self, abc.Mapping):
  *         return (<_Base>other)._eq_to_mapping(self)             # <<<<<<<<<<<<<<
@@ -2078,13 +2080,13 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
  *         return NotImplemented
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = ((struct __pyx_vtabstruct_9multidict_10_multidict__Base *)((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_other)->__pyx_vtab)->_eq_to_mapping(((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_other), __pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 47, __pyx_L1_error)
+    __pyx_t_3 = ((struct __pyx_vtabstruct_9multidict_10_multidict__Base *)((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_other)->__pyx_vtab)->_eq_to_mapping(((struct __pyx_obj_9multidict_10_multidict__Base *)__pyx_v_other), __pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 50, __pyx_L1_error)
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_r = __pyx_t_3;
     __pyx_t_3 = 0;
     goto __pyx_L0;
 
-    /* "multidict/_multidict.pyx":46
+    /* "multidict/_multidict.pyx":49
  *     elif is_left_base and isinstance(other, abc.Mapping):
  *         return (<_Base>self)._eq_to_mapping(other)
  *     elif is_right_base and isinstance(self, abc.Mapping):             # <<<<<<<<<<<<<<
@@ -2093,7 +2095,7 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
  */
   }
 
-  /* "multidict/_multidict.pyx":49
+  /* "multidict/_multidict.pyx":52
  *         return (<_Base>other)._eq_to_mapping(self)
  *     else:
  *         return NotImplemented             # <<<<<<<<<<<<<<
@@ -2107,7 +2109,7 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
     goto __pyx_L0;
   }
 
-  /* "multidict/_multidict.pyx":34
+  /* "multidict/_multidict.pyx":37
  * 
  * 
  * cdef _eq(self, other):             # <<<<<<<<<<<<<<
@@ -2127,7 +2129,7 @@ static PyObject *__pyx_f_9multidict_10_multidict__eq(PyObject *__pyx_v_self, PyO
   return __pyx_r;
 }
 
-/* "multidict/_multidict.pyx":56
+/* "multidict/_multidict.pyx":59
  *     cdef object _value
  * 
  *     def __cinit__(self, key, value):             # <<<<<<<<<<<<<<
@@ -2163,11 +2165,11 @@ static int __pyx_pw_9multidict_10_multidict_5_Pair_1__cinit__(PyObject *__pyx_v_
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(0, 56, __pyx_L3_error)
+          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(0, 59, __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, 56, __pyx_L3_error)
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 59, __pyx_L3_error)
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -2180,7 +2182,7 @@ static int __pyx_pw_9multidict_10_multidict_5_Pair_1__cinit__(PyObject *__pyx_v_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 56, __pyx_L3_error)
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 59, __pyx_L3_error)
   __pyx_L3_error:;
   __Pyx_AddTraceback("multidict._multidict._Pair.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -2198,7 +2200,7 @@ static int __pyx_pf_9multidict_10_multidict_5_Pair___cinit__(struct __pyx_obj_9m
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "multidict/_multidict.pyx":57
+  /* "multidict/_multidict.pyx":60
  * 
  *     def __cinit__(self, key, value):
  *         self._key = key             # <<<<<<<<<<<<<<
@@ -2211,7 +2213,7 @@ static int __pyx_pf_9multidict_10_multidict_5_Pair___cinit__(struct __pyx_obj_9m
   __Pyx_DECREF(__pyx_v_self->_key);
   __pyx_v_self->_key = __pyx_v_key;
 
-  /* "multidict/_multidict.pyx":58
+  /* "multidict/_multidict.pyx":61
... 8977 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