# Path: argos/utils/cls.py
# def type_name(var):
#     """ Returns the name of the type of var"""
#     return type(var).__name__
# 
# def check_class(obj, target_class, allow_none = False):
#     """ Checks that the  obj is a (sub)type of target_class.
#         Raises a TypeError if this is not the case.
# 
#         :param obj: object whos type is to be checked
#         :type obj: any type
#         :param target_class: target type/class
#         :type target_class: any class or type
#         :param allow_none: if true obj may be None
#         :type allow_none: boolean
#     """
#     if not isinstance(obj, target_class):
#         if not (allow_none and obj is None):
#             raise TypeError("obj must be a of type {}, got: {}"
#                             .format(target_class, type(obj)))
# 
# Path: argos/qt/bindings.py
# API_PYSIDE2 = 'pyside2'
# API_PYQT5 = 'pyqt5'
# ALL_API = [API_PYQT5, API_PYSIDE2]
# QT_API_NAME = os.environ.get('QT_API')
#     QT_API_NAME = None
#         QT_API_NAME = API_PYQT5
#         QT_API_NAME = API_PYSIDE2
#         QT_API_NAME = API_PYQT5
#         QT_API_NAME = API_PYSIDE2


import logging
from argos.utils.cls import type_name, check_class
from argos.qt import QtCore, QtSignal, Qt
    from pprint import pprint
        col = index.column()
        storeItem = self._store.items[row]
        fieldName = self._fieldNames[col]
        storeItem.data[fieldName] = value

        self.emitDataChanged(storeItem)

        return True


    def emitDataChanged(self, storeItem):
        """ Emits the dataChanged and sigItemChanged signals for the storeItem
        """
        leftIndex = self.indexFromItem(storeItem, col=0)
        rightIndex = self.indexFromItem(storeItem, col=-1)

        logger.debug("Data changed: {} ... {}".format(self.data(leftIndex), self.data(rightIndex)))
        self.dataChanged.emit(leftIndex, rightIndex)
        self.sigItemChanged.emit(storeItem)


    def createItem(self):
        """ Creates an emtpy item of type ITEM_CLASS
        """
        return self.store.ITEM_CLASS()


    def insertItem(self, item, row):
        """ Insert an item in the store at a certain row.
        """

# Path: argos/utils/cls.py
# def type_name(var):
#     """ Returns the name of the type of var"""
#     return type(var).__name__
# 
# def check_class(obj, target_class, allow_none = False):
#     """ Checks that the  obj is a (sub)type of target_class.
#         Raises a TypeError if this is not the case.
# 
#         :param obj: object whos type is to be checked
#         :type obj: any type
#         :param target_class: target type/class
#         :type target_class: any class or type
#         :param allow_none: if true obj may be None
#         :type allow_none: boolean
#     """
#     if not isinstance(obj, target_class):
#         if not (allow_none and obj is None):
#             raise TypeError("obj must be a of type {}, got: {}"
#                             .format(target_class, type(obj)))
# 
# Path: argos/qt/bindings.py
# API_PYSIDE2 = 'pyside2'
# API_PYQT5 = 'pyqt5'
# ALL_API = [API_PYQT5, API_PYSIDE2]
# QT_API_NAME = os.environ.get('QT_API')
#     QT_API_NAME = None
#         QT_API_NAME = API_PYQT5
#         QT_API_NAME = API_PYSIDE2
#         QT_API_NAME = API_PYQT5
#         QT_API_NAME = API_PYSIDE2


# Path: argos/reg/tabmodel.py
import logging
from argos.utils.cls import type_name, check_class
from argos.qt import QtCore, QtSignal, Qt
    from pprint import pprint

        col = index.column()
        storeItem = self._store.items[row]
        fieldName = self._fieldNames[col]
        storeItem.data[fieldName] = value

        self.emitDataChanged(storeItem)

        return True


    def emitDataChanged(self, storeItem):
        """ Emits the dataChanged and sigItemChanged signals for the storeItem
        """
        leftIndex = self.indexFromItem(storeItem, col=0)
        rightIndex = self.indexFromItem(storeItem, col=-1)

        logger.debug("Data changed: {} ... {}".format(self.data(leftIndex), self.data(rightIndex)))
        self.dataChanged.emit(leftIndex, rightIndex)
        self.sigItemChanged.emit(storeItem)


    def createItem(self):
        """ Creates an emtpy item of type ITEM_CLASS
        """
        return self.store.ITEM_CLASS()


    def insertItem(self, item, row):
        """ Insert an item in the store at a certain row.
        """

        check_class(item, self.store.ITEM_CLASS)