def _get_properties(config):
    "Returns a tuple of property classes and names.\n\n    Property classes are fully qualified, such as 'abc.abstractproperty' and\n    property names are the actual names, such as 'abstract_property'.\n    "
    property_classes = {BUILTIN_PROPERTY}
    property_names = set()
    if (config is not None):
        property_classes.update(config.property_classes)
        property_names.update((prop.rsplit('.', 1)[(- 1)] for prop in config.property_classes))
    return (property_classes, property_names)
Returns a tuple of property classes and names.

Property classes are fully qualified, such as 'abc.abstractproperty' and
property names are the actual names, such as 'abstract_property'.
def _get_properties(config):
    "Returns a tuple of property classes and names.\n\n    Property classes are fully qualified, such as 'abc.abstractproperty' and\n    property names are the actual names, such as 'abstract_property'.\n    "
    property_classes = {BUILTIN_PROPERTY}
    property_names = set()
    if (config is not None):
        property_classes.update(config.property_classes)
        property_names.update((prop.rsplit('.', 1)[(- 1)] for prop in config.property_classes))
    return (property_classes, property_names)