human
Complete the below
def _get_variables(func):

    ''''Calls func, returning any variables created, but ignoring its return value.
    Args:
    func: Function to be called.
    Returns:
    A tuple (variables, constants) where the first element is a list of
    trainable variables and the second is the non-trainable variables.'
    '''
assistant
#Here is the Python program you requested.
    variables = []
    constants = []
    def custom_getter(getter, name, **kwargs):
        trainable = kwargs['trainable']
        kwargs['trainable'] = False
        variable = getter(name, **kwargs)
        if trainable:
            variables.append(variable)
        else:
            constants.append(variable)
        return variable
    with tf.name_scope('unused_graph'):
        _wrap_variable_creation(func, custom_getter)
    return (variables, constants)