Extract the (op_name, operator_params) tuple from a directive object.

def _get_filter_op_name_and_values(directive):
    """Extract the (op_name, operator_params) tuple from a directive object."""
    args = get_uniquely_named_objects_by_name(directive.arguments)
    if 'op_name' not in args:
        raise AssertionError(u'op_name not found in filter directive arguments!'
                             u'Validation should have caught this: {}'.format(directive))

    # HACK(predrag): Workaround for graphql-core validation issue
    #                https://github.com/graphql-python/graphql-core/issues/97
    if not isinstance(args['value'].value, ListValue):
        raise GraphQLValidationError(u'Filter directive value was not a list: {}'.format(directive))

    op_name = args['op_name'].value.value
    operator_params = [x.value for x in args['value'].value.values]

    return (op_name, operator_params)