sqlalchemy.sqinspect

Here are the examples of the python api sqlalchemy.sqinspect taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

1 Examples 7

Example 1

Project: tornado-restless Source File: wrapper.py
def _filter(instance, condition) -> dict:
    """
        Filter properties of instace based on condition

        :param instance:
        :param condition:
        :rtype: dict
    """

    # Use iterate_properties when available
    if hasattr(instance, 'iterate_properties'):
        return {field.key: field for field in instance.iterate_properties
                if condition(field)}

    # Try sqlalchemy inspection
    try:
        inspection = sqinspect(instance)
        if hasattr(inspection, "all_orm_descriptors"):
            return {field.key: field for key, field in inspection.all_orm_descriptors.items()
                    if condition(field)}
        elif hasattr(inspection, "attrs"):
            return {field.key: field for key, field in inspection.attrs.items()
                    if condition(field)}
        else:
            raise NoInspectionAvailable()
    # Use Inspect
    except NoInspectionAvailable:
        return {field.key: field for key, field in inspect.getmembers(instance)
                if condition(field)}