code: def get_entity_loaded_propnames(entity):
      
      ins = inspect(entity)
      keynames = get_entity_propnames(ins)
  
      # If the entity is not transient -- exclude unloaded keys
      # Transient entities won't load these anyway, so it's safe to include all columns and get defaults
      if not ins.transient:
          keynames -= ins.unloaded
  
      # If the entity is expired -- reload expired attributes as well
      # Expired attributes are usually unloaded as well!
      if ins.expired:
          keynames |= ins.expired_attributes
  
      # Finish
      return keynames
docs: Get entity property names that are loaded (e.g. won't produce new queries)
  
          :param entity: Entity
          :type entity: sqlalchemy.ext.declarative.api.DeclarativeMeta
          :returns: Set of entity property names
          :rtype: set