

@classmethod
def _fix_up_properties(cls):
    'Fix up the properties by calling their _fix_up() method.\n\n    Note: This is called by MetaModel, but may also be called manually\n    after dynamically updating a model class.\n    '
    kind = cls._get_kind()
    if (not isinstance(kind, basestring)):
        raise KindError(('Class %s defines a _get_kind() method that returns a non-string (%r)' % (cls.__name__, kind)))
    if (not isinstance(kind, str)):
        try:
            kind = kind.encode('ascii')
        except UnicodeEncodeError:
            raise KindError(('Class %s defines a _get_kind() method that returns a Unicode string (%r); please encode using utf-8' % (cls.__name__, kind)))
    cls._properties = {
        
    }
    if (cls.__module__ == __name__):
        return
    for name in set(dir(cls)):
        attr = getattr(cls, name, None)
        if (isinstance(attr, ModelAttribute) and (not isinstance(attr, ModelKey))):
            if name.startswith('_'):
                raise TypeError(('ModelAttribute %s cannot begin with an underscore character. _ prefixed attributes are reserved for temporary Model instance values.' % name))
            attr._fix_up(cls, name)
            if isinstance(attr, Property):
                if (attr._repeated or (isinstance(attr, StructuredProperty) and attr._modelclass._has_repeated)):
                    cls._has_repeated = True
                cls._properties[attr._name] = attr
    cls._update_kind_map()

dataset/ETHPy150Open GoogleCloudPlatform/datastore-ndb-python/ndb/model.py Model._fix_up_properties/original