def reflect(cls, X, **kwargs):
        """Reflect is for visitors where you are exposing some information
        about the types reachable from a starting type to an external system.
        For example, a front-end, a REST URL router and documentation
        framework, an avro schema definition, etc.

        X can be a type or an instance.

        This API should be considered **experimental**
        """
        if isinstance(X, type):
            value = None
            value_type = X
        else:
            value = X
            value_type = type(X)
        if not issubclass(value_type, Record):
            raise TypeError("Cannot reflect on %s" % value_type.__name__)

        visitor = cls.Visitor(
            cls.scantypes, cls.propinfo, cls.itemtypes,
            cls.typeinfo,
            **kwargs)

        return cls.map(visitor, value, value_type)
def reflect ( cls , X , ** kwargs ) : if isinstance ( X , type ) : value = None value_type = X else : value = X value_type = type ( X ) if not issubclass ( value_type , Record ) : raise TypeError ( "Cannot reflect on %s" % value_type . __name__ ) visitor = cls . Visitor ( cls . scantypes , cls . propinfo , cls . itemtypes , cls . typeinfo , ** kwargs ) return cls . map ( visitor , value , value_type )
Reflect is for visitors where you are exposing some information
        about the types reachable from a starting type to an external system.
        For example, a front-end, a REST URL router and documentation
        framework, an avro schema definition, etc.

        X can be a type or an instance.

        This API should be considered **experimental**