def _gc_rule_from_pb(gc_rule_pb):
    """Convert a protobuf GC rule to a native object.

    :type gc_rule_pb: :class:`.table_v2_pb2.GcRule`
    :param gc_rule_pb: The GC rule to convert.

    :rtype: :class:`GarbageCollectionRule` or :data:`NoneType <types.NoneType>`
    :returns: An instance of one of the native rules defined
              in :module:`column_family` or :data:`None` if no values were
              set on the protobuf passed in.
    :raises: :class:`ValueError <exceptions.ValueError>` if the rule name
             is unexpected.
    """
    rule_name = gc_rule_pb.WhichOneof("rule")
    if rule_name is None:
        return None

    if rule_name == "max_num_versions":
        return MaxVersionsGCRule(gc_rule_pb.max_num_versions)
    elif rule_name == "max_age":
        max_age = _helpers._duration_pb_to_timedelta(gc_rule_pb.max_age)
        return MaxAgeGCRule(max_age)
    elif rule_name == "union":
        return GCRuleUnion(
            [_gc_rule_from_pb(rule) for rule in gc_rule_pb.union.rules])
    elif rule_name == "intersection":
        rules = [
            _gc_rule_from_pb(rule) for rule in gc_rule_pb.intersection.rules
        ]
        return GCRuleIntersection(rules)
    else:
        raise ValueError("Unexpected rule name", rule_name)
def _gc_rule_from_pb(gc_rule_pb):
    """Convert a protobuf GC rule to a native object.

    :type gc_rule_pb: :class:`.table_v2_pb2.GcRule`
    :param gc_rule_pb: The GC rule to convert.

    :rtype: :class:`GarbageCollectionRule` or :data:`NoneType <types.NoneType>`
    :returns: An instance of one of the native rules defined
              in :module:`column_family` or :data:`None` if no values were
              set on the protobuf passed in.
    :raises: :class:`ValueError <exceptions.ValueError>` if the rule name
             is unexpected.
    """
    rule_name = gc_rule_pb.WhichOneof('rule')
    if rule_name is None:
        return None

    if rule_name == 'max_num_versions':
        return MaxVersionsGCRule(gc_rule_pb.max_num_versions)
    elif rule_name == 'max_age':
        max_age = _helpers._duration_pb_to_timedelta(gc_rule_pb.max_age)
        return MaxAgeGCRule(max_age)
    elif rule_name == 'union':
        return GCRuleUnion([_gc_rule_from_pb(rule)
                            for rule in gc_rule_pb.union.rules])
    elif rule_name == 'intersection':
        rules = [_gc_rule_from_pb(rule)
                 for rule in gc_rule_pb.intersection.rules]
        return GCRuleIntersection(rules)
    else:
        raise ValueError('Unexpected rule name', rule_name)
Пример #3
0
    def _call_fut(self, *args, **kwargs):
        from google.cloud._helpers import _duration_pb_to_timedelta

        return _duration_pb_to_timedelta(*args, **kwargs)
    def _call_fut(self, *args, **kwargs):
        from google.cloud._helpers import _duration_pb_to_timedelta

        return _duration_pb_to_timedelta(*args, **kwargs)