def missing_property_names(self):
        """
        Returns a list of properties which are required and missing.

        Properties are excluded from this list if they are allowed to be null.

        :return: list of missing properties.
        """

        propname = lambda x: self.__prop_names__[x]
        missing = []
        for x in self.__required__:

            # Allow the null type
            propinfo = self.propinfo(propname(x))
            null_type = False
            if 'type' in propinfo:
                type_info = propinfo['type']
                null_type = (type_info == 'null'
                             or isinstance(type_info, (list, tuple))
                             and 'null' in type_info)
            elif 'oneOf' in propinfo:
                for o in propinfo['oneOf']:
                    type_info = o.get('type')
                    if type_info and type_info == 'null' \
                            or isinstance(type_info, (list, tuple)) \
                            and 'null' in type_info:
                        null_type = True
                        break

            if (propname(x) not in self._properties and null_type) or \
                    (self._properties[propname(x)] is None and not null_type):
                missing.append(x)

        return missing
def missing_property_names ( self ) : propname = lambda x : self . __prop_names__ [ x ] missing = [ ] for x in self . __required__ : propinfo = self . propinfo ( propname ( x ) ) null_type = False if 'type' in propinfo : type_info = propinfo [ 'type' ] null_type = ( type_info == 'null' or isinstance ( type_info , ( list , tuple ) ) and 'null' in type_info ) elif 'oneOf' in propinfo : for o in propinfo [ 'oneOf' ] : type_info = o . get ( 'type' ) if type_info and type_info == 'null' or isinstance ( type_info , ( list , tuple ) ) and 'null' in type_info : null_type = True break if ( propname ( x ) not in self . _properties and null_type ) or ( self . _properties [ propname ( x ) ] is None and not null_type ) : missing . append ( x ) return missing
Returns a list of properties which are required and missing.

        Properties are excluded from this list if they are allowed to be null.

        :return: list of missing properties.