code: def resolve(cls, propname, objcls=None):
          '''
              resolve type of the class property for the class. If objcls is not set then 
              assume that cls argument (class that the function is called from) is the class 
              we are trying to resolve the type for 
          :param cls:
          :param objcls:
          :param propname:
          '''
          # object class is not given
          if objcls is None:
              objcls = cls
          # get type
          typemap = cls._types.get(objcls)
          if(typemap is not None):
              # nothing registered for this property
              return typemap.get(propname, None)
          # type map didn't exist so none
          return Nonf resolve(cls, propname, objcls=None):
          '''
              resolve type of the class property for the class. If objcls is not set then 
              assume that cls argument (class that the function is called from) is the class 
              we are trying to resolve the type for 
          :param cls:
          :param objcls:
          :param propname:
          '''
          # object class is not given
          if objcls is None:
              objcls = cls
          # get type
          typemap = cls._types.get(objcls)
          if(typemap is not None):
              # nothing registered for this property
              return typemap.get(propname, None)
          # type map didn't exist so none
          return None
docs: resolve type of the class property for the class. If objcls is not set then 
              assume that cls argument (class that the function is called from) is the class 
              we are trying to resolve the type for 
          :param cls:
          :param objcls:
          :param propname: