diff options
| author | Sergey Lisitsyn <[email protected]> | 2022-02-10 16:48:19 +0300 |
|---|---|---|
| committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:48:19 +0300 |
| commit | 193231612b72d126ed21bc6b76b1a5206066a868 (patch) | |
| tree | b222e5ac2e2e98872661c51ccceee5da0d291e13 /contrib/tools/cython/Cython | |
| parent | c9e1915ecc1c41fac307cfc13afbd8b06c44f3df (diff) | |
Restoring authorship annotation for Sergey Lisitsyn <[email protected]>. Commit 2 of 2.
Diffstat (limited to 'contrib/tools/cython/Cython')
| -rw-r--r-- | contrib/tools/cython/Cython/Compiler/PyrexTypes.py | 4 | ||||
| -rw-r--r-- | contrib/tools/cython/Cython/Utility/CppConvert.pyx | 92 |
2 files changed, 48 insertions, 48 deletions
diff --git a/contrib/tools/cython/Cython/Compiler/PyrexTypes.py b/contrib/tools/cython/Cython/Compiler/PyrexTypes.py index 8accaa976b2..3d4931cea63 100644 --- a/contrib/tools/cython/Cython/Compiler/PyrexTypes.py +++ b/contrib/tools/cython/Cython/Compiler/PyrexTypes.py @@ -3497,8 +3497,8 @@ builtin_cpp_conversions = { # arcadia_cpp_conversions "TMaybe": 1, "TVector": 1, - "THashMap": 2, - "TMap": 2, + "THashMap": 2, + "TMap": 2, } class CppClassType(CType): diff --git a/contrib/tools/cython/Cython/Utility/CppConvert.pyx b/contrib/tools/cython/Cython/Utility/CppConvert.pyx index eb62577d9d5..5f7859dd0ef 100644 --- a/contrib/tools/cython/Cython/Utility/CppConvert.pyx +++ b/contrib/tools/cython/Cython/Utility/CppConvert.pyx @@ -336,49 +336,49 @@ cdef dict {{cname}}(const THashMap[X,Y]& s): result[key_value.first] = key_value.second cython.operator.preincrement(iter) return result - - -#################### arcadia_TMap.from_py #################### - -cdef extern from *: - cdef cppclass pair "std::pair" [T, U]: - pair(T&, U&) - cdef cppclass TMap [T, U]: - void insert(pair[T, U]&) - - -@cname("{{cname}}") -cdef TMap[X,Y] {{cname}}(object o) except *: - cdef dict d = o - cdef TMap[X,Y] m - for key, value in d.iteritems(): - m.insert(pair[X,Y](<X>key, <Y>value)) - return m - - -#################### arcadia_TMap.to_py #################### - -cimport cython - -cdef extern from *: - cdef cppclass TMap [T, U]: - cppclass value_type: - T first - U second - cppclass const_iterator: - value_type& operator*() - const_iterator operator++() - bint operator!=(const_iterator) - const_iterator begin() - const_iterator end() - -@cname("{{cname}}") -cdef dict {{cname}}(const TMap[X,Y]& s): - cdef dict result = {} - cdef const TMap[X,Y].value_type *key_value - cdef TMap[X,Y].const_iterator iter = s.begin() - while iter != s.end(): - key_value = &cython.operator.dereference(iter) - result[key_value.first] = key_value.second - cython.operator.preincrement(iter) - return result + + +#################### arcadia_TMap.from_py #################### + +cdef extern from *: + cdef cppclass pair "std::pair" [T, U]: + pair(T&, U&) + cdef cppclass TMap [T, U]: + void insert(pair[T, U]&) + + +@cname("{{cname}}") +cdef TMap[X,Y] {{cname}}(object o) except *: + cdef dict d = o + cdef TMap[X,Y] m + for key, value in d.iteritems(): + m.insert(pair[X,Y](<X>key, <Y>value)) + return m + + +#################### arcadia_TMap.to_py #################### + +cimport cython + +cdef extern from *: + cdef cppclass TMap [T, U]: + cppclass value_type: + T first + U second + cppclass const_iterator: + value_type& operator*() + const_iterator operator++() + bint operator!=(const_iterator) + const_iterator begin() + const_iterator end() + +@cname("{{cname}}") +cdef dict {{cname}}(const TMap[X,Y]& s): + cdef dict result = {} + cdef const TMap[X,Y].value_type *key_value + cdef TMap[X,Y].const_iterator iter = s.begin() + while iter != s.end(): + key_value = &cython.operator.dereference(iter) + result[key_value.first] = key_value.second + cython.operator.preincrement(iter) + return result |
