def _iter_config_props(cls):
        """Iterate over all ConfigProperty attributes, yielding (attr_name, config_property) """
        props = inspect.getmembers(cls, lambda a: isinstance(a, ConfigProperty))
        for attr_name, config_prop in props:
            yield attr_name, config_prop