• Vadim Levin's avatar
    Merge pull request #15915 from VadimLevin:dev/norm_fix · 31289d2f
    Vadim Levin authored
    Fix implicit conversion from array to scalar in python bindings
    
    * Fix wrong conversion behavior for primitive types
    
      - Introduce ArgTypeInfo namedtuple instead of plain tuple.
        If strict conversion parameter for type is set to true, it is
        handled like object argument in PyArg_ParseTupleAndKeywords and
        converted to concrete type with the appropriate pyopencv_to function
        call.
      - Remove deadcode and unused variables.
      - Fix implicit conversion from numpy array with 1 element to scalar
      - Fix narrowing conversion to size_t type.
    
    * Fix wrong conversion behavior for primitive types
    
      - Introduce ArgTypeInfo namedtuple instead of plain tuple.
        If strict conversion parameter for type is set to true, it is
        handled like object argument in PyArg_ParseTupleAndKeywords and
        converted to concrete type with the appropriate pyopencv_to function
        call.
      - Remove deadcode and unused variables.
      - Fix implicit conversion from numpy array with 1 element to scalar
      - Fix narrowing conversion to size_t type.·
      - Enable tests with wrong conversion behavior
      - Restrict passing None as value
      - Restrict bool to integer/floating types conversion
    
    * Add PyIntType support for Python 2
    
    * Remove possible narrowing conversion of size_t
    
    * Bindings conversion update
    
      - Remove unused macro
      - Add better conversion for types to numpy types descriptors
      - Add argument name to fail messages
      - NoneType treated as a valid argument. Better handling will be added
        as a standalone patch
    
    * Add descriptor specialization for size_t
    
    * Add check for signed to unsigned integer conversion safety
    
      - If signed integer is positive it can be safely converted
        to unsigned
      - Add check for plain python 2 objects
      - Add check for numpy scalars
      - Add simple type_traits implementation for better code style
    
    * Resolve type "overflow" false negative in safe casting check
    
     - Move type_traits to separate header
    
    * Add copyright message to type_traits.hpp
    
    * Limit conversion scope for integral numpy types
    
      - Made canBeSafelyCasted specialized only for size_t, so
        type_traits header became unused and was removed.
      - Added clarification about descriptor pointer
    31289d2f
Name
Last commit
Last update
.github Loading commit data...
3rdparty Loading commit data...
apps Loading commit data...
cmake Loading commit data...
data Loading commit data...
doc Loading commit data...
include Loading commit data...
modules Loading commit data...
platforms Loading commit data...
samples Loading commit data...
.editorconfig Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
CMakeLists.txt Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
README.md Loading commit data...