def find_implementations(sort_by=None):
impls = [_describe_impl(t) for t in _list_impls()]<EOL>if sort_by:<EOL><INDENT>impls.sort(key=attrgetter(sort_by))<EOL><DEDENT>return tuple(impls)<EOL>
Returns a tuple of :class:`~escpos.helpers.Implementation` objects
containing metadata for all known implementations (subclasses of
:class:`~escpos.impl.epson.GenericESCPOS`) with vendor and model names, the
implementation type and its fully qualified name.

This example will print all vendor and model names, sorted by vendor name:

.. sourcecode::

    for impl in find_implementations(sort_by='model.vendor'):
        print impl.model.vendor, ':', impl.model.name

:param str sort_by: Attribute name to sort the resulting list (optional).

:rtype: tuple