<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def guard_handler(instance, transition_id):
 """Generic workflow guard handler that returns true if the transition_id passed in can be performed to the instance passed in. This function is called automatically by a Script (Python) located at bika/lims/skins/guard_handler.py, which in turn is fired by Zope when an expression like "python:here.guard_handler('<transition_id>')" is set to any given guard (used by default in all bika's DC Workflow guards). Walks through bika.lims.workflow.<obj_type>.guards and looks for a function that matches with 'guard_<transition_id>'. If found, calls the function and returns its value (true or false). If not found, returns True by default. :param instance: the object for which the transition_id has to be evaluated :param transition_id: the id of the transition :type instance: ATContentType :type transition_id: string :return: true if the transition can be performed to the passed in instance :rtype: bool """

    if not instance:
        return True
    clazz_name = instance.portal_type
    # Inspect if bika.lims.workflow.<clazzname>.<guards> module exists
    wf_module = _load_wf_module('{0}.guards'.format(clazz_name.lower()))
    if not wf_module:
        return True

    # Inspect if guard_<transition_id> function exists in the above module
    key = 'guard_{0}'.format(transition_id)
    guard = getattr(wf_module, key, False)
    if not guard:
        return True

    #logger.info('{0}.guards.{1}'.format(clazz_name.lower(), key))
    return guard(instance)